我正在努力从PHP脚本中将UTF-8编码的字符串插入到MySQL表中:
该表设置为整理" utf8_unicode_ci",该字段是文本字段,也是整理" utf8_unicode_ci"。该字符串正在从另一个站点读入,如下所示:
$str = "Bonka bдver, е hцra va man bara ta't en fika.";
...... INSERT之前一切都很好看。如果我 echo($ str); ,我会看到unicode字符:
Bonka bдver, е hцra va man bara ta't en fika.
...但是当我尝试将这个字符串INSERT到MySQL表中时,就像这样:
$sql = "INSERT INTO mytable (id, mystring)
VALUES ('','".addslashes($str)."');";
if ( !mysqli_query( $mysqli, $sql ) ) {
printf("Error: %s\n", mysqli_error( $mysqli ) );
die();
}
...写入数据库的是:
Bonka bдver, е hцra va man bara ta't en fika.
我非常确定桌子没问题,(因为我尝试通过PhpMyAdmin插入相同的字符串并且工作正常),而且我非常确定源字符串是否正常,(因为我可以输出它通过echo()和它在unicode中),所以我猜问题必须是我插入它的方式?我做错了什么?
PS。我尝试了没有在$ str上的addslashes(),但后来我得到了错误:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 't en fika.
感谢您的期待!