单入口注册模块组合sql语句的一个小问题
Jun 20, 2016 pm 12:30 PM 请教大家一个问题,用单入口方式写的一个注册类
$uname=$_POST['uname'];
$pwd=md5($_POST['pwd']);
//组合sql
$sql="insert into user(username,password) values($uname,$pwd)";
M()->exec($sql);
$sql这句插入数据有问题,$uname和$pwd都取得值了.我书写的哪块错误了,双引号不是直接能解析变量的吗?
//我改成这种直接插入没问题$sql="insert into user(username,password) values('xiaozhang','34345')";
$sql 我改成 $sql="insert into user(username,password) values(".$uname.",".$pwd.")"; 也不行,哪里出错了,应该怎么写.
回复讨论(解决方案)
我的调试方法, 先去数据库写一条插入语句,执行成功后,按照你写的语句去拼凑php这边的表达式就行了
$sql="insert into user(username,password) values('$uname','$pwd')";
字符串是需要用引号括起的,否则会被误解
$sql="insert into user(username,password) values(‘".$uname."’,‘".$pwd."’)"; 出错的时候可以把sql输出看看是什么
$sql="insert into user(username,password) values('$uname','$pwd')";
字符串是需要用引号括起的,否则会被误解
$uname 不是变量吗,为啥用单引号括起来.php中单引号不是不解析变量的吗?
$sql="insert into user(username,password) values('$uname','$pwd')";
字符串是需要用引号括起的,否则会被误解
$uname 不是变量吗,为啥用单引号括起来.php中单引号不是不解析变量的吗?
如果你uname定义为varchar,不家引号,sql会报错的。
$sql="insert into user(username,password) values('$uname','$pwd')";
字符串是需要用引号括起的,否则会被误解
$uname 不是变量吗,为啥用单引号括起来.php中单引号不是不解析变量的吗?
如果你uname定义为varchar,不家引号,sql会报错的。
我数据库定义的char(20)类型的

熱門文章

熱門文章

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)