簡體   English   中英

將UTF-8字符串插入MySQL表

[英]INSERTing UTF-8 string into MySQL table

我正在努力從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.

...但是當我嘗試將此字符串插入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上使用addlashes()進行嘗試,但是隨后我得到了錯誤:

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.

感謝您的光臨!

使用mysqli_set_charset將連接上的字符集設置為UTF-8。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM