PHP連線MYSQL亂碼教程

2022-04-05 06:57:37 字數 1811 閱讀 3174

php連線mysql亂碼的原因有很多;

要解決php頁面亂碼,首先就要了解php頁面亂碼的原因

1.架設伺服器安裝mysql時的會讓你選擇一種編碼,如果這種編碼與你的php網頁不一致,可能就會造成亂碼

2.在phpmyadmin或php?name=mysql" onclick="tagshow(event)" class="t_tag">mysql-front等系統 建立資料庫時會讓你選擇一種編碼,如果這種編碼與你的php網頁不一致,也有可能造成php頁面亂碼

3.建立表時會讓你選擇一種編碼,如果這種編碼與你的網頁編碼不一致,也可能造成php頁面亂碼

4.建立表時新增欄位是可以選擇編碼的,如果這種編碼與你的網頁編碼不一致,也可能造成php頁面亂碼

5.使用者提交頁面的編碼與顯示資料的頁面編碼不一致,就肯定會造成php頁面亂碼.

如使用者輸入資料的頁面是big5碼, 顯示使用者輸入的頁面卻是gb2312,這種100%會造成php頁面亂碼

6.php頁面字符集不正確

要注意:

1.平時你在某些**看到的文字可能有幾種編碼, 如你看到乙個繁體字,它有可能是big5編碼,也有 可能是utf-8編碼的,更有可能是gb碼的,沒錯,也就是說有簡體編碼的繁體字,也有繁體編碼的簡體字,一定要了解這一點.

如果你是做乙個簡體編碼的網頁,編碼定為gb2312,如果有香港和台灣地區的訪客提交繁體的資訊,就可能會造成亂碼,解決方法就是(1)將**編碼設為utf-8,這樣可以相容世界上所有字元, (2)如果**已經運作了好久,已有很多舊資料,不能再更改簡體中文的設定,那麼建議將頁面的編碼設為gbk,

gbk與gb2312的區別就在於:gbk能比gb2312顯示更多的字元,要顯示簡體碼的繁體字,就只能用gbk

7.php連線mysql資料庫語句指定的編碼不正確

所以,php頁面亂碼的原因無非就是以上幾種,知道原因之後,要解決php頁面亂碼的方法也容易多了

我們一一來表達:

1.如果安裝mysql的編碼已不能更改,很多朋友是購買虛擬主機建立**,無權更改mysql的安裝編碼,這一關我們可以跳過,因為只要後面的步聚正確,一樣能解決亂碼問題

2.修改資料庫編碼,如果是資料庫編碼不正確: 可以在phpmyadmin 執行如下命令: alter database `test` default character set utf8 collate utf8_bin

以上命令就是將test資料庫的編碼設為utf8

3.修改表的編碼:alter table `category` default character set utf8 collate utf8_bin

以上命令就是將乙個表category的編碼改為utf8

4.修改欄位的編碼:

alter table `test` change `dd` `dd` varchar( 45 ) character set utf8 collate utf8_bin not null

以上命令就是將test表中 dd的字段編碼改為utf8

5.如果是這種情況容易解決,只需檢查下頁面,修改原始檔的charset即可

6.這種情況也是修改頁面charset即可

7.在連線資料庫的語句中,

mysql_connect('localhost','user','password');

mysql_select_db('my_db');

mysql_query("set names utf8;"); //select 資料庫之後加多這一句

為了避免php頁面亂碼的發生,php頁面開始第一句

header("content-type:text/html; charset=utf-8");

//強行指定頁面的編碼,以避免亂碼

mysql連線教程 MySQL 連線

mysql 連線 使用mysql二進位制方式連線 您可以使用mysql二進位制方式進入到mysql命令提示符下來連線mysql資料庫。例項以下是從命令列中連線mysql伺服器的簡單例項 root host mysql u root p enter password 在登入成功後會出現 mysql 命...

解決php連線mysql出現亂碼辦法講解

用phpmyadmin新增mysql資料庫,然後用php運算元據庫出現亂碼的解決辦法 1 確認phpmyadmin用的mysql字符集為utf 8 unicode utf8 mysql連線校對為utf8 general ci,language為中文 chinese simplified 3 在php...

連線mysql出現亂碼 MySQL連線時的亂碼問題

昨天用python連線mysql時遇到了乙個錯誤 latin 1 codec can t encode characters in position 36 37 ordinal not in ra.調式乙個多鐘頭才發現原來是編碼的問題,於是檢視mysql的編碼如下 問題就出在這,以上三個設定編碼是g...