php插入数据中文不行 php不显示中文
PHP 向数据库插入数据,为什么文字类型的插入不了,数字的却可以。
首先 你看看你的表的字符集是不是utf-8的 也就是这个utf8_general_ci字符集才能存中文
在成都网站制作、成都做网站、外贸营销网站建设过程中,需要针对客户的行业特点、产品特性、目标受众和市场情况进行定位分析,以确定网站的风格、色彩、版式、交互等方面的设计方向。成都创新互联还需要根据客户的需求进行功能模块的开发和设计,包括内容管理、前台展示、用户权限管理、数据统计和安全保护等功能。
php不能往mysql数据库添加汉字,只能添加字母和数字
php+mysql数据时我们必须保证提交到数据库的编码与mysql编码是一致的这样才可以保存中文不出现问号乱码问题,下面我先整理两个让mysql与页面保证编码一致的方法。
解决中文插入数据库乱码的方法:
直接把中文转变成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文件链接数据库,插入数据,中文显示乱码,求高手解惑!!
你的数据库是什么编码的?默认的latin编码是不支持汉字的,改成utf8或者utf8mb4编码,然后你的PHP文件编码也使用utf8编码
网站标题:php插入数据中文不行 php不显示中文
转载来源:http://scyanting.com/article/hehisp.html