PHP页面用PDO 写了插入mysql中文的代码 在mysql数据库显示问号 这个应该怎么解决
<?php
$pdo = new PDO("mysql:host=localhost;dbname=uzhan","root","");
$count = $pdo->exec("INSERT INTO liebiaoye SET picdizhi = 'wwwe',itemdizhi='wefwef',fenlei='中文'");
?>
<?php
$pdo = new PDO("mysql:host=localhost;dbname=uzhan","root","");
$count = $pdo->exec("INSERT INTO liebiaoye SET picdizhi = 'wwwe',itemdizhi='wefwef',fenlei='中文'");
?>
2、你的程序文件时用什么字符集保存的
它使用的是 pdo,你 mysql_query 算是怎么回事?
例如:你的数据库表为utf-8
在连接之后先执行一下设置字符集语句:
$pdo->query("set names utf8");
设置为UTF8即可。
try{
//$dsn = "mysql:host=localhost;dbname=lamp55";
$pdo = new PDO(DSN,USER,PASS); $pdo->query('set names utf8');}catch(PDOException $e){
die("数据库连接错误!原因:".$e->getMessage());
}
当然你也可以
$pdo->query('set names gbk');注意,以前插入的数据“乱码”的话,依然还是“乱码”的
//第一页
$pdo = new PDO("mysql:host=localhost;dbname=uzhan","root","");
$pdo->query('set names gbk');
$count = $pdo->exec("INSERT INTO liebiaoye SET picdizhi = 'wf',itemdizhi='wfwf',fenlei='中文'");
?>
我重新插入了 还是乱码。。 我mysql里面测试不是乱码的 明显应该是PHP页面的问题。。
原来是 mysql数据库显示问号
现在是 我mysql里面测试不是乱码的那就是浏览器的编码问题了
header('Content-type: text/html;charset=GBK');
只要检查以下几种编码统一一切都没问题
一、服务端程序声明编码,比如header("Content-type: text/html; charset=gb2312");
二、客户端声明编码,比如 <META http-equiv="content-type" content="text/html; charset=gb2312">
三、数据库编码、表以及字段的编码
四、文件本身编码属性
五、连接数据库时请声明编码,比如$pdo->query('set names gbk');只要做到以上几点统一,编码问题自然就解决了