当前位置:Gxlcms > PHP教程 > 单入口注册模块组合sql语句的一个小问题

单入口注册模块组合sql语句的一个小问题

时间:2021-07-01 10:21:17 帮助过:11人阅读

请教大家一个问题,用单入口方式写的一个注册类

$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)类型的

人气教程排行