㈠ 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使用utf8插入中文数据到MySQL中文显示会乱码怎么办
数据库使用utf8编码,需要在操作的过程中统一全部编码。
CREATEDATABASE`test`DEFAULTCHARACTERSET'utf8';
CREATETABLE`tablea`(
`id`INTNOTNULLAUTO_INCREMENT,
`title`VARCHAR(100)NULL,
)ENGINE=InnoDBDEFAULTCHARSET=utf8;
默认情况下,字段的编码同表的编码,但是如果修改了表的编码,字段编码不会同步修改,需要手动修改
这里修改编码测试我将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;
连接数时设置编码
//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数据库时汉字乱码怎么解决,文档和数据库都是utf8格式。
乱码有几个方面
首先确保数据库的编码是否正确
其次确保连接数据库的代码是否指定了正确的编码。
另外就是html页面的编码是否一致,麻烦把问题补充清楚方便排查问题。
㈣ php显示中文乱码,phpmyadmin里的MySQL数据库中文乱码,如何解决
将浏览器中的编码改成utf-8,数据库中也是。在php页面首行加上header("Content-type:
text/html;
charset=utf-8");,必须首行,前面不能有输出。
还有,在查询数据库时加上:mysql_query(set
names
utf-8);