[英]PHP PDO fatal error
我有以下查询:
$sql = "UPDATE db.users SET $str WHERE users.{$this->row} = {$this->value} LIMIT 1";
哪个回声出来了:
UPDATE db.users SET username=testUser, gid=3 WHERE users.username = mmiller LIMIT 1
但是,当我这样做时:
$count = Db::init()->exec($sql);
我得到:
Fatal error: Uncaught exception 'PDOException' with message
'SQLSTATE [42S22]:找不到列:1054 /class.php:185中'where子句'中的未知列'mmiller'堆栈跟踪:#0 /class.php(185):PDO-> exec('UPDATE db ...')#1 /class.php(194):User-> modify('username','gid','testUser','3')#2 {main}放在第185行的/class.php中
有任何想法吗?
您需要使用"
UPDATE db.users SET username="testUser", gid="3" WHERE users.username = "mmiller" LIMIT 1
确保您的回声向您显示。 您当然可以使用'
,无论您的船如何漂浮:)
您需要在字符串值前后使用引号;
$sql = "UPDATE db.users SET $str WHERE users.{$this->row} = '{$this->value}' LIMIT 1";
看到您已经在使用PDO,使用准备好的语句可能会有所帮助。 尽管一次性查询的速度稍慢,但它可以提高安全性并处理所有必要的转义操作,因此您不会遇到这些问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.