PHP插入数据到数据库出中,中文出现乱码~~全是问号
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP插入数据到数据库出中,中文出现乱码~~全是问号相关的知识,希望对你有一定的参考价值。
我是php菜鸟,现在刚学到在数据库中插入数据~~就遇到了麻烦~~
我的代码是:
<?php
$conn=@mysql_connect('localhost','root','') or die('好像数据库链接错误哦!');
mysql_select_db("liuyan",$conn);
$sql="insert into liuyan (bh,mz,xb,qq,liuyan) values('','电影网','男','871997143','哈哈哈不知道可不可以哈')";
mysql_query($sql,$conn) or die(mysql_error());
mysql_query("set names 'GBK'");
?>
为了以防乱码我已经在<head>标记中加了
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
数据库的结构是:
bh int(10) 否 无 auto_increment
mz varchar(10) gbk_chinese_ci 否 无
xb varchar(2) gbk_chinese_ci 否 无
qq varchar(10) gbk_chinese_ci 否 无
liuyan text gbk_chinese_ci 否 无
类型为:
MyISAM
我采用的是wamp环境安装包~~
以上是我的一些情况~~望高手看到给个答案~~谢谢诶!
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()); 参考技术A <?php
header("Content-type:text/html;charset=GBK");
$conn=mysqli_connect("localhost","用户","密码","数据库") or die("无法连接MySQL数据库服务器!");
$conn->query("SET NAMES GBK");
?>
<meta http-equiv="Content-Type" content="text/html; charset=GBK" />
这样统一下 还有文件编码格式不能是utf-8模式的本回答被提问者采纳
PHP+phpMyAdmin编程插入数据显示中文乱码的问题
相信初学php的同学应该都会试一些小程序,比如从input文本框输入数据后点击提交,数据自动插入数据库保存。
但是如果是输入中文提交,不经过一定配置,在phpMyAdmin中就会显示乱码。什么%ez.[]@#$%#$%^都有。。。
今天经过查询解决了这个问题。网上说的很多都没有说全,这里我来总结一下:
//(本人环境由wampserver64自动配置)
1、首先在phpMyAdmin中找到你创建的表,如table1(注意是表不是数据库),点击上方的“结构”,找到你想要保存中文的那一列的名字,如information,点击右侧“修改”,把排序规则修改成utf8_general_ci。
P.S.如果你是先建的这个表,然后根据网上说的教程修改表的排序规则或者外部数据库的排序规则甚至服务器的规则,依然还是不能插入中文,必须要精确到这个字段。而如果你在建表的时候就设定字符集,那是没问题的。
2、在你运行后显示页面的html部分的head部分加入 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">,如下图
3、在php部分,你涉及插入数据库的代码之前加入
mysql_query("set names \'utf8\'");
如图:
重新运行程序,就可以插入中文啦
注:本人环境是由wamp64自动配置,所以不用修改my.ini之类的,如果看完本文依然无法解决请另行搜索。
以上是关于PHP插入数据到数据库出中,中文出现乱码~~全是问号的主要内容,如果未能解决你的问题,请参考以下文章