当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-21 17:50:59 浏览: 评论:0 

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. ?>

Tags: php插入数据 mysql中文乱码

分享到: