Heim > Backend-Entwicklung > PHP-Tutorial > 单入口注册模块组合sql语句的一个小问题

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-20 12:30:24
Original
857 Leute haben es durchsucht

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

$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输出看看是什么
Nach dem Login kopieren

$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)类型的
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage