新聞中心
php中為什么插入數(shù)據(jù)庫(kù)的中文變成亂碼
請(qǐng)將數(shù)據(jù)庫(kù)的編碼,表的編碼以及字段的編碼與網(wǎng)頁(yè)代碼的編碼保持一致。
成都創(chuàng)新互聯(lián)公司專(zhuān)注于浚縣網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供浚縣營(yíng)銷(xiāo)型網(wǎng)站建設(shè),浚縣網(wǎng)站制作、浚縣網(wǎng)頁(yè)設(shè)計(jì)、浚縣網(wǎng)站官網(wǎng)定制、小程序定制開(kāi)發(fā)服務(wù),打造浚縣網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供浚縣網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
另外注意文件本身的編碼與html代碼頭meta中的編碼說(shuō)明保持一致。
那你看看是不是在連接數(shù)據(jù)庫(kù)的時(shí)候采用了utf8格式,語(yǔ)法如mysql_query('set
names
utf8');
PHP文件鏈接數(shù)據(jù)庫(kù),插入數(shù)據(jù),中文顯示亂碼,求高手解惑!!
你的數(shù)據(jù)庫(kù)是什么編碼的?默認(rèn)的latin編碼是不支持漢字的,改成utf8或者utf8mb4編碼,然后你的PHP文件編碼也使用utf8編碼
PHP插入數(shù)據(jù)到數(shù)據(jù)庫(kù)出中,中文出現(xiàn)亂碼~~全是問(wèn)號(hào)
?php
header("content-type:text/html;charset=gbk");
$conn=mysqli_connect("localhost","用戶(hù)","密碼","數(shù)據(jù)庫(kù)")
or
die("無(wú)法連接mysql數(shù)據(jù)庫(kù)服務(wù)器!");
$conn-query("set
names
gbk");
?
meta
http-equiv="content-type"
content="text/html;
charset=gbk"
/
這樣統(tǒng)一下
還有文件編碼格式不能是utf-8模式的
PHP使用utf8插入中文數(shù)據(jù)到MySQL中文顯示會(huì)亂碼怎么辦?
數(shù)據(jù)庫(kù)使用utf8編碼,需要在操作的過(guò)程中統(tǒng)一全部編碼。
1.數(shù)據(jù)庫(kù)默認(rèn)編碼
CREATE?DATABASE?`test`?DEFAULT?CHARACTER?SET?'utf8';
2.表默認(rèn)編碼
CREATE?TABLE?`tablea`(
`id`?INT?NOT?NULL?AUTO_INCREMENT,
`title`?VARCHAR(100)?NULL,
)ENGINE=InnoDB?DEFAULT?CHARSET=utf8;
3.字段默認(rèn)編碼
默認(rèn)情況下,字段的編碼同表的編碼,但是如果修改了表的編碼,字段編碼不會(huì)同步修改,需要手動(dòng)修改
這里修改編碼測(cè)試我將utf8 改為 gb2312? ,僅用于觀察修改后的情況(實(shí)際使用中可能是將gbk修改為utf8)
ALTER?TABLE?`test`.`tablea`?CHARACTER?SET?=?gb2312?;
--?修改表編碼后,查看建表語(yǔ)句
show?create?table?`tablea`;
--?可以看到輸出的建表語(yǔ)句中字段單獨(dú)設(shè)置了編碼
CREATE?TABLE?`tablea`(
`id`?INT?NOT?NULL?AUTO_INCREMENT,
`title`?VARCHAR(100)?CHARACTER?SET?utf8?NULL,
)ENGINE=InnoDB?DEFAULT?CHARSET=gb2312;
--?需要手動(dòng)修改字段編碼
ALTER?TABLE?`tablea`?
CHANGE?COLUMN?`title`?`title`?VARCHAR(100)?CHARACTER?SET?'gb2312'?NULL?DEFAULT?NULL?;
4.當(dāng)前數(shù)據(jù)庫(kù)連接的編碼
連接數(shù)時(shí)設(shè)置編碼
//?PDO?連接
$db?=?new?PDO('mysql:host=myhost;dbname=test',?'login',?'password',?
array(PDO::MYSQL_ATTR_INIT_COMMAND?=?'SET?NAMES?\'UTF8\'')
);?
//?mysqli連接
$link?=?mysqli_connect("127.0.0.1",?"my_user",?"my_password",?"test");
mysqli_query($link,"SET?NAMES?'utf8';");
通過(guò)以上幾步操作,基本可以保證數(shù)據(jù)庫(kù)使用過(guò)程中不會(huì)出現(xiàn)亂碼
網(wǎng)站標(biāo)題:php插入數(shù)據(jù)庫(kù)為亂碼 php連接數(shù)據(jù)庫(kù)亂碼
網(wǎng)站鏈接:http://ef60e0e.cn/article/ddshdsi.html