作者yongb (蓝海悦)
看板PHP
标题[请益] PDO 无法输入英文或中文到SQL..
时间Wed Nov 4 01:26:28 2015
各位前辈好~
刚刚尝试用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
请问各位前辈问题究竟出在哪里......
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.165.45.183
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/PHP/M.1446571592.A.5B9.html
1F:→ iceblue7x: 字串要引号 11/04 01:33
......对齁!!!(震惊
我笑了xDDDDD
谢谢大大我真的是Orz
2F:→ shadowjohn: 这样写很不好的~再仔细找一下preparedstatement 11/04 01:45
确实呢,我看网路上大多都是那种写法
像我这样的完全没有
明天就来改xDD
为了一个引号从7点弄到现在囧
谢谢大大嘿
不过Prepared Statements中翻要怎念阿? 预处理?
4F:推 xdraculax: 开发环境最好把错误讯息全开,把sql贴到phpmyadmin之 11/04 07:50
5F:→ xdraculax: 类资料库管理工具执行也会秀错误讯息 11/04 07:50
好的感谢大大会从这方面着手
这次为了一个引号弄那麽久真的是惨痛的教训....
全开是指
getMessage()
getCode()
getFile()
getLine()
getTrace() backtrace()
getTraceAsString()
全放吗?
因为我是Vim打好就丢伺服器然後开网页来看了......
6F:→ MOONRAKER: 用到pdo就可以好好用prepare了 土制SQL已经是过去的事 11/04 10:01
刚刚改完觉得蛮潮的ww
※ 编辑: yongb (36.233.4.167), 11/04/2015 14:17:18