单入口注册模块组合sql语句的一个小问题
程序员文章站
2024-01-30 19:39:16
...
请教大家一个问题,用单入口方式写的一个注册类
$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.")"; 也不行,哪里出错了,应该怎么写.
$uname 不是变量吗,为啥用单引号括起来.php中单引号不是不解析变量的吗?
$uname 不是变量吗,为啥用单引号括起来.php中单引号不是不解析变量的吗?
如果你uname定义为varchar,不家引号,sql会报错的。
$uname 不是变量吗,为啥用单引号括起来.php中单引号不是不解析变量的吗?
如果你uname定义为varchar,不家引号,sql会报错的。
我数据库定义的char(20)类型的
$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)类型的
推荐阅读