1. 程式人生 > >已解決|php insert into 插入失敗 |Incorrect string value: '\xE5\x88\x98\xE5\xAE\x89' for column 'name

已解決|php insert into 插入失敗 |Incorrect string value: '\xE5\x88\x98\xE5\xAE\x89' for column 'name

/程式碼插入資料
$myID = Null;
$myName='劉安';
$myMoney=100;

$sqlstatement="insert into users values(Null, '{$myName}', '{$myMoney}')";
$result=mysql_query($sqlstatement);
var_dump($result);

一直false false false 搞的我想死想死想死

後來也沒查閱文件 懷疑是編碼格式的問題

mysql_set_charset('utf8');

改為

mysql_set_charset('utf-8');

便解決了這個問題,你說氣不氣......

我是看慕課網視訊學習的 但是他用的是utf8居然可以 我的不可以 。。。不清楚原因 但是記錄一下 以防再次踩坑

 續-----------

再改回來哦

mysql_set_charset('utf8');

以為解決了呢 並沒有

更氣的還在下面 看似解決了 但是當用cmd 命令查詢出亂碼的時候

心有不甘 以為是cmd 編碼格式問題呢

再使用Navicat Premium使用一看也是亂碼 涼涼

最後解決方案也貼一下

是因為資料庫表的編碼格式不對造成的,開啟mysql找到對應的表,修改其編碼格式為“utf8”之後,問題即可解決!

當然Navicat Premium 修改表不好找 甚至找不到 故而修改欄位的地方改編碼效果一樣

你的問題已經解決了 接下來是小結 可以不看的

$sqlstatement="insert into users values(Null, '{$myName}', '{$myMoney}')";
$result=mysql_query($sqlstatement);
var_dump($result);
echo mysql_error();

1 可以通過這個 mysql_error() 找到具體bug 從而解決

2 通過具體bug 找具體問題 不要瞎描述 那樣越走越遠 比如標題上面的php insert into 插入失敗....