当前位置: 首页 > 知识库问答 >
问题:

MySQL。在数据库中插入UTF-8字符

宁浩博
2023-03-14

我需要添加用户名从Facebook到数据库,这些名称有UTF-8字符,如 (ą,č,ę,ė,į,š,ų,ū).当我把它添加到数据库中,例如字母š看起来像

在myPhpAdmin中,我找到了设置编码UTF-8的表设置,我这样做了,但问题相同。我添加了mysql\u set\u字符集('utf8') 到我的代码,但这也没有帮助。代码现在看起来像:

<?php 
    $time = $_POST['time'];
    $username = $_POST['userName'];

    session_start();
    $name = $_SESSION['vardas']; 
    $times = gmdate('H:m:s', $time);

    mysql_set_charset('utf8');
    $mysqli = new mysqli("localhost","my_db","pass","my_db");
if ($stmt = $mysqli->prepare("INSERT into eurokos (time, userName) VALUE (?,?) ")) {

$stmt->bind_param('is', $time, $name);
  // $stmt->bind_param("s", $username);

   $stmt->execute();

   if ($stmt->error != '') {
       echo ' error:'.$stmt->error;
   } else {
       echo 'success';
   }
   $stmt->close();
} else {
   echo 'error:'.$mysqli->error;
}

此外,这个PHP文件转换为UTF-8编码,但不会有所帮助。

当我使用这个代码echo“Name:”时$用户配置文件['name'] Facebook以UTF-8格式正确打印普通字母的用户名。所以问题是在数据库中插入用户名。

这我用来发送用户名变量从fb.phpdb.php(也许在这里我需要使用任何编码?)

$name = $user_profile['name'];
session_start();
$_SESSION['vardas'] = $name;

你能帮我吗?谢谢


共有1个答案

贺善
2023-03-14

这解决了我的问题:

if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
    printf("Current character set: %s\n", $mysqli->character_set_name());
}
 类似资料:
  • null DB cfg获取 DB2数据库区域设置配置 语句正确执行,并且数据库中的行正确显示: null null 我认为这可能是一些编码问题在客户端,或服务器由于配置,文件或sql编码。 更新: 我还尝试用SQL加载一个UTF-8文件。文件正确加载,使用UTF-8字符调试SQL也正确传递给语句,但结果是相同的。 但在数据库中,测试显示为: 十六进制表示: 我认为DB2 Java客户机可能使用所有

  • 我的变更集如下所示 我已经使用插件将liquibase与集成在一起 当我运行时,它会创建表,类似于

  • form action=“reg”method=“post”accept-charset=“ISO-8859-1,UTF-8;q=0.5”enctype=“application/x-www-form-urlencoded”name=“form1”id=“form1” ^-------起作用了 如果表单动作=“reg”method=“post”accept-charset=“iso-8859-1”

  • 问题内容: 我正在使用mysql 5.5.10,它的character_sets是 我将utf8mb4从utf8更改为iOS5的表情符号。它们由4字节代码表示。 但是当我插入3个笑脸表情符号时,“ ???” 在mysql中。 它们是3F 3F 3F(十六进制)。 我可以很好地存储iOS4的表情符号,但不能存储iOS5的表情符号。 如何存储iOS5的表情符号? 请帮我。 问题答案: 4字节Unico

  • 问题内容: 我有一个具有UTF-8字符集的MySQL表,并尝试通过PHP表单插入该表时,数据库显示以下错误: PDOStatement :: execute():SQLSTATE [HY000]:常规错误:1366错误的字符串值:’\ xE8’为列… 有问题的字符是“cat”,但考虑到数据库和表设置为UTF-8,我不明白为什么这应该是一个问题。 编辑 我已经直接从mysql终端尝试过,并且遇到了同

  • 问题内容: 我试图将图像存储在数据库中,由于某种原因,它似乎无法正常工作。这是我桌子的结构。 这是我的查询,它插入图像或至少多数民众赞成在什么: 如果我打印file_get_contents($ tmp_image)的值,那么屏幕上会有大量数据。但是,此值不会存储在数据库中,这就是我面临的问题。 问题答案: 问题 这会在PHP中创建一个名为的字符串。暂时不要使用MySQL,因为您尚未执行任何查询。