当前位置:首页 » 数据仓库 » php写入数据库乱码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

php写入数据库乱码

发布时间: 2022-11-12 18:05:48

① php读取mysql中文数据出现乱码的解决方法

1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库
解决方法:选择'UTF8'或者'gb2312',这样客户浏览器会自动选择并出现正确的中文显示。注意:'UTF8'或者'gb2312'都可以正确显示中文的。
2.数据库MySQL中的编码类型不正确。
解决方法:创建数据库的时候,MySQL
字符集选择'UTF8',MySQL
连接校对选择utf8_general_ci,这样创建的数据库用来存储中文肯定没有问题,
否则,你的中文首先在MySQL中就是乱码,更不要期望它会给你在PHP页面中显示正确。
3.与平时的脚本编辑环境有关。比如,有些内容是自己用word写的,有些是用记事本写的,有些用editplus、ultraplus等文本编辑器。有时候就直接在DW中写中文了,
解决方法:尽量用同一种编辑器。如果是拷贝来得既有的内容,建议用ultraplus中的编码转换功能把它转换成utf8或者gb2312。
到底转换成什么类型并不重要,关键要求你的PHP
WEB应用程序中的编码要一致就行。
4.编程访问
MySQL时,建议添加一行代码:mysql_query("SET
NAMES
'GBK'");

② PHP使用utf8插入中文数据到MySQL中文显示会乱码怎么办

数据库使用utf8编码,需要在操作的过程中统一全部编码。

1.数据库默认编码

CREATEDATABASE`test`DEFAULTCHARACTERSET'utf8';

2.表默认编码

CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)NULL,
)ENGINE=InnoDBDEFAULTCHARSET=utf8;

3.字段默认编码

默认情况下,字段的编码同表的编码,但是如果修改了表的编码,字段编码不会同步修改,需要手动修改

这里修改编码测试我将utf8 改为 gb2312 ,仅用于观察修改后的情况(实际使用中可能是将gbk修改为utf8)

ALTERTABLE`test`.`tablea`CHARACTERSET=gb2312;

--修改表编码后,查看建表语句
showcreatetable`tablea`;

--可以看到输出的建表语句中字段单独设置了编码
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)CHARACTERSETutf8NULL,
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;

--需要手动修改字段编码
ALTERTABLE`tablea`
CHANGECOLUMN`title``title`VARCHAR(100)CHARACTERSET'gb2312'NULLDEFAULTNULL;

4.当前数据库连接的编码

连接数时设置编码

//PDO连接
$db=newPDO('mysql:host=myhost;dbname=test','login','password',
array(PDO::MYSQL_ATTR_INIT_COMMAND=>'SETNAMES'UTF8'')
);

//mysqli连接
$link=mysqli_connect("127.0.0.1","my_user","my_password","test");
mysqli_query($link,"SETNAMES'utf8';");

通过以上几步操作,基本可以保证数据库使用过程中不会出现乱码

③ PHP插入mysql数据库乱码

乱码主要以下几个原因:
1。数据表中,表本身的编码 和 字段编码,均为UTF8。
2。在写入数据等数据库操作前,发送语句 'set names utf8'
3。PHP文件都是UTF8编码,无签名(无BOM)
4。页面上使用header或<meta>保证输出的页面是UTF8编码。<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
www.itcyly.com
鲜少老师

④ php中为什么插入数据库的中文变成乱码

请将数据库的编码,表的编码以及字段的编码与网页代码的编码保持一致。
另外注意文件本身的编码与html代码头meta中的编码说明保持一致。
那你看看是不是在连接数据库的时候采用了utf8格式,语法如mysql_query('set
names
utf8');

⑤ php显示中文乱码

php数据库中文乱码的解决办法:1、创建数据库时,规定字符类型为uft8;2、创建表时,规定字符类型为utf8;3、在PHP的MySQL连接函数中,添加语句“mysql_query("set names 'utf8'")。

⑥ PHP插入数据到数据库出中,中文出现乱码~~全是问号

你把你的这两行代码,顺序返过来
mysql_query($sql,$conn)
or
die(mysql_error());
mysql_query("set
names
'GBK'");
改为
mysql_query("set
names
'GBK'");
mysql_query($sql,$conn)
or
die(mysql_error());

⑦ php保存数据在MySql中怎么都是乱码

1、php/html文件编码与数据库编码不统一
2、连接数据库时没有设置连接编码,“set names 。。。”
3、数据库编码设置有问题
4、数据库字段编码设置有问题
5、php程序里面没有对相关的字段进行转码