用户名:
密 码: 记住
您当前的位置:首页 > 网络编程 > php教程

解决php插入数据到mysql中文乱码问题

时间:2015-01-23  来源:西部数据  作者:西部数据

php+mysql数据时我们必须保证提交到数据库的编码与mysql编码是一致的这样才可以保存中文不出现问号乱码问题,下面我先整理两个让mysql与页面保证编码一致的方法.

解决中文插入数据库乱码的方法,直接把中文转变成utf-8格式,大多是这个问题导致的,代码如下:

$str = iconv('gbk','utf-8',$str);

如果还不行检查网页编码是否正确,代码如下:

<?php header("Content-Type:text/html;charset=utf-8");?>

例子,由于我懒得写,网上的这个例子感觉还挺清楚的,建表,代码如下:

  1. Create TABLE `net_city` ( 
  2. `cityid` smallint(4) NOT NULL auto_increment, 
  3. `cityname` varchar(80) NOT NULL default ''
  4. `provinceid` smallint(2) NOT NULL default '0'
  5. `inarea` varchar(5000) NOT NULL default ''
  6. `outarea` varchar(5000) NOT NULL default ''
  7. `tel` varchar(400) NOT NULL default ''
  8. PRIMARY KEY (`cityid`) 
  9. ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 

PHP里的代码:

  1. ?$conn=mysql_connect("localhost""用户名""密码"); 
  2.  
  3. mysql_query("set names 'utf8'",$conn); 
  4. mysql_select_db(" www.phpfensi.com 数据名",$conn); 
  5. $exec="insert into net_city (cityname,inarea,outarea,tel) values ('".$link_cityname."','".$link_inarea."','".$link_outarea."','".$link_tel."')"
  6. $result=mysql_query($exec,$conn); 
  7. if($result){ 
  8.        echo "1"
  9.      }else
  10.         echo "0"
  11.      } 
  12. mysql_close($conn); 

后来我试了试全部都用成gbk的,也是可以的,在查询数据时我们直接使用mysql_query()来设置:mysql_query("SET NAMES GBK");  //GBK处为编码设置

例子,下面是 "insert.php" 页面的代码:

  1. <?php$con = mysql_connect("localhost","peter","abc123"); 
  2. if (!$con) { die('Could not connect: ' . mysql_error()); } 
  3. mysql_select_db("my_db"$con); 
  4. mysql_query("SET NAMES GBK");  //GBK处为编码设置 
  5. $sql="INSERT INTO person (FirstName, LastName, Age)VALUES('$_POST[firstname]','$_POST[lastname]','$_POST[age]')"
  6. if (!mysql_query($sql,$con)) 
  7. die('Error: ' . mysql_error()); } 
  8. echo "1 record added"
  9. mysql_close($con
  10. ?>
来顶一下
返回首页
返回首页
推荐资讯
WiFi太不安全:7岁女孩11分钟内入侵公共网络 WiFi太不安全:7岁女孩11分钟内入侵近期刚刚发布研究说WiFi网络能获得人们手机里多少私人信息,
不服跑个分?人工智能也出现“刷分”乱象 不服跑个分?人工智能也出现“刷分2014年,人工智能领域突然爆发,成为了科研和科技创业的热门
相关文章
栏目更新
栏目热门