
正文
php中文存入数据库 php怎么从数据库读取数据
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用PHP向mysql数据库中写入中文汉字为什么显示不出来?我已经设置成gb2312了
PHP与数据库的编码应一致
1. 修改mysql配置文件my.ini或my.cnf,mysql最好用utf8编码
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
default-storage-engine=MyISAM
在[mysqld]下加入:
default-collation=utf8_bin
init_connect='SET NAMES utf8'
2. 在需要做数据库操作的php程序前加mysql_query("set names
'编码'");,编码和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那mysql编码就是 utf8,这样插入或检索数据时就不会出现乱码了
相关问答
Q1: 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)
?
Q2: php将汉字写入数据库问题
你建立的表字段的编码是什么编码呢?mysql的编码分为两种,一种是客户端编码,这个可以通过set names GBK(utf8);来改变;这句话的意思是告诉mysql服务器,你的客户端使用的是什么编码。另一种是数据在库中存储时使用的编码,这个编码可以在安装mysql建立数据库,建立表的时候选择,以建表时的选择为最后标准,若果没选择,默认继承安装时的选择。你说的插入成功却是空行的原因,可能是因为安装时选择的编码里面,对汉字的编码支持的太少,因此出现这样的情况,建议:show create table table_name;查看下建表语句中的字符集。最好修改成utf8。这样适应能力强一些!
Q3: 用php无法将中文字符插入mysql数据库
看看是不是你的字符集合没设置对
如果你用的mysql网页版 ,在建立表的时候有个整合选项,你选定utf8_bin
在定义类函数连接数据库的时候加上
mysql_connect("localhost","root","password");
mysql_select_db("databasesName");
mysql_query("set names gb2312");
上面那个是国标的如果是英文程序 改成mysql_query("set names utf8");
Q4: php将中文字符串插入mysql数据库不能显示中文怎么办?
中文编码涉及到三个问题:
一个是页面php中文存入数据库的输出就是header('Content-type: text/html;charset=utf-8');
还有就是文件本身php中文存入数据库的编码,用专业php中文存入数据库的编辑器工具比如editplus编辑,保存时另存为,选择编码格式的下拉列表找到UTF-8。
最好就是保存到数据库时php中文存入数据库,注意数据库的编码格式是否和php中文存入数据库你的页面一致。
Q5: php怎么读取txt文本内容存入mysql数据库
第一步,读取txt的文件。假设为a.txt
$content = file_get_content('a.txt'); //读取文件内容存入变量。
第二步,存入数据库
mysql_query("insert 表名 (字段名) values('".$content."'));
Ps:文件是上传的,上传后的临时文件名是:$_FILE['tmp_name']
php中文存入数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php怎么从数据库读取数据、php中文存入数据库的信息别忘了在本站进行查找喔。






