> 백엔드 개발 > PHP 튜토리얼 > 单入口注册模块组合sql语句的一个小问题

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-20 12:30:24
원래의
857명이 탐색했습니다.

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

$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)类型的
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿