[请益] PDO 无法输入英文或中文到SQL..

楼主: yongb (火系见习魔法师 )   2015-11-04 01:26:28
各位前辈好~
刚刚尝试用PDO
查询新增修改删除都很顺利的过来了
(没有用hmtl,可以写入英文中文)
现在尝试由html写入资料到sql
可是发现......
只要有中文跟英文就无法写入....
打数字才能写入....
html有加
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
php档
<?php
header("Content-Type:text/html; charset=utf-8");
$sno=$_POST['a'];
$name=$_POST['b'];
$dsn = "";
$dbh=new PDO();
$dbh->exec("set character set utf-8");
$sql="insert into test(sno,name)values($sno,$name)";
/* ^这里要加' '
e.g. '$sno'
*/
$count=$dbh->exec($sql);
echo $sql;
if(!$sql)
echo "no";
else
echo "ok";
$dbh=null;
?>
我有用echo $sql看,显示如下(假设html分别输入1和abc后)
INSERT INTO test(sno,name)VALUES(1,abc)ok
这样显示程式应该是没问题吧?
但只要有中文或英文就无法写入囧
phpMyadmin编码也默认了utf8_general_ci
sno、name型态都用varchar了空间各20
浏览器编码也用了utf-8
请问各位前辈问题究竟出在哪里......
作者: iceblue7x (满城尽带路人甲)   2015-11-04 01:33:00
字串要引号
作者: shadowjohn (转角遇到爱)   2015-11-04 01:45:00
这样写很不好的~再仔细找一下preparedstatementhttp://php.net/manual/en/pdo.prepare.php
作者: xdraculax (首席怪叔叔)   2015-11-04 07:50:00
开发环境最好把错误讯息全开,把sql贴到phpmyadmin之类数据库管理工具执行也会秀错误讯息
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-11-04 10:01:00
用到pdo就可以好好用prepare了 土制SQL已经是过去的事

Links booklink

Contact Us: admin [ a t ] ucptt.com