首頁  >  文章  >  後端開發  >  用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

WBOY
WBOY原創
2016-09-12 17:44:411249瀏覽

1.我寫了php程式碼向mysql資料庫插入一個帶有中文的欄位值,在phpMyadmin查看顯示亂碼,在mysql控制台查看也是亂碼,我已經把每個欄位的排序規則改為uft8_general_ci,在phpmyadmin裡面直接插入顯示正常,在mysql控制台直接插入也顯示正常,只是透過php插入就不正常,我也在php程式碼寫了header("Content-Type:text/html;charset=utf-8");

<code><?php
header("Content-Type:text/html;charset=utf-8");
if($con=mysqli_connect('localhost','root','')){
    echo '连接成功';

}
else{
    echo '连接失败';
}
if(mysqli_select_db($con,"test")){
    echo '选择数据库成功';
    }
else{
    echo '选择数据库失败';
}

$str="insert into students(name,age)values('周杰伦','23')";

if(mysqli_query($con,$str)){
    echo '插入成功';
}
else{
    echo '插入失败';
}
mysqli_close($con);//关闭数据库
?></code>

用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

3.請大神幫忙看問題出在哪裡?

回覆內容:

1.我寫了php程式碼向mysql資料庫插入一個帶有中文的欄位值,在phpMyadmin查看顯示亂碼,在mysql控制台查看也是亂碼,我已經把每個欄位的排序規則改為uft8_general_ci,在phpmyadmin裡面直接插入顯示正常,在mysql控制台直接插入也顯示正常,只是透過php插入就不正常,我也在php程式碼寫了header("Content-Type:text/html;charset=utf-8");

<code><?php
header("Content-Type:text/html;charset=utf-8");
if($con=mysqli_connect('localhost','root','')){
    echo '连接成功';

}
else{
    echo '连接失败';
}
if(mysqli_select_db($con,"test")){
    echo '选择数据库成功';
    }
else{
    echo '选择数据库失败';
}

$str="insert into students(name,age)values('周杰伦','23')";

if(mysqli_query($con,$str)){
    echo '插入成功';
}
else{
    echo '插入失败';
}
mysqli_close($con);//关闭数据库
?></code>

用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

3.請大神幫忙看問題出在哪裡?

看你的資料庫表裡面有正常的中文,那就試插入資料的時候出現的問題。統一字元編碼格式:

  • 確保資料庫,表,欄位設定的都是utf-8

  • 確保連接資料庫的時候設定字元集是utf-8

  • 確保程序文件是utf-8

  • 確保mysql安裝程式的設定檔設定字元utf-8

我找到問題關鍵了,下面兩位回答的我都試過了,不起效果,問題出在mysql.ini配置少了一句話default-character-set = utf8 ,我是安裝wampserver後用這個軟體自己安裝的mysql他的mysql.ini沒有那句話,,而且如果加入這句話位置也不能亂加,必須加在我圖片指出的位置用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

用show variables like 'character_set_%;查看修改ini檔案後的字元編碼如下圖
用php向Mysql資料庫插入中文資料時資料庫中顯示亂碼

你要設定mysql編碼 執行sql "set names utf8"

設定字符集試試

<code>mysqli_set_charset($con, "utf8");</code>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn