php+mysql數據時我們必須保證提交到數據庫的編碼與mysql編碼是一致的這樣才可以保存中文不出現問號亂碼問題,下面我先整理兩個讓mysql與頁面保證編碼一致的方法。
創新互聯長期為超過千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為愛輝企業提供專業的成都做網站、成都網站設計、成都外貿網站建設,愛輝網站改版等技術服務。擁有十余年豐富建站經驗和眾多成功案例,為您定制開發。
解決中文插入數據庫亂碼的方法:
直接把中文轉變成utf-8格式,大多是這個問題導致的。
代碼如下復制代碼
$str
=
iconv('gbk','utf-8',$str);
如果還不行檢查網頁編碼是否正確:
代碼如下復制代碼
?php
header("Content-Type:text/html;charset=utf-8");
?
建表:
代碼如下復制代碼
Create
TABLE
`net_city`
(
`cityid`
smallint(4)
NOT
NULL
auto_increment,
`cityname`
varchar(80)
NOT
NULL
default
'',
`provinceid`
smallint(2)
NOT
NULL
default
'0',
`inarea`
varchar(5000)
NOT
NULL
default
'',
`outarea`
varchar(5000)
NOT
NULL
default
'',
`tel`
varchar(400)
NOT
NULL
default
'',
PRIMARY
KEY
(`cityid`)
)
ENGINE=MyISAM
DEFAULT
CHARSET=utf8;
PHP里的代碼:
$conn=mysql_connect("localhost",
"用戶名",
"密碼");
mysql_query("set
names
'utf8'",$conn);
mysql_select_db("
數據名",$conn);
$exec="insert
into
net_city
(cityname,inarea,outarea,tel)
values
('".$link_cityname."','".$link_inarea."','".$link_outarea."','".$link_tel."')";
$result=mysql_query($exec,$conn);
if($result){
echo
"1";
}else{
echo
"0";
}
mysql_close($conn);
后來我試了試全部都用成gbk的,也是可以的~
在查詢數據時我們直接使用mysql_query()來設置
mysql_query("SET
NAMES
GBK");
//GBK處為編碼設置
例子
下面是
"insert.php"
頁面的代碼:
代碼如下復制代碼
?php$con
=
mysql_connect("localhost","peter","abc123");
if
(!$con)
{
die('Could
not
connect:
'
.
mysql_error());
}
mysql_select_db("my_db",
$con);
mysql_query("SET
NAMES
GBK");
//GBK處為編碼設置
$sql="INSERT
INTO
person
(FirstName,
LastName,
Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
if
(!mysql_query($sql,$con))
{
die('Error:
'
.
mysql_error());
}
echo
"1
record
added";
mysql_close($con)
?
這個應該跟PHP沒有什么關系,你檢查一下你mysql數據庫里面表內字段屬性,可能跟這個相關
還有一種可能是編碼錯誤,包括頁面編碼及數據庫編碼。
可能導致錄入數據亂碼。
最好保持數據庫編碼和你的程序文件編碼一致
比如通常都是:數據庫編碼utf8_general_ci 然后php程序文件編碼也是utf8,html也是utf8
文章題目:php數據庫只能寫數字,php數據庫只能寫數字嗎
文章位置:http://vcdvsql.cn/article48/hssjhp.html
成都網站建設公司_創新互聯,為您提供面包屑導航、商城網站、品牌網站建設、營銷型網站建設、搜索引擎優化、網站維護
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯