繁体   English   中英

PHP PDO致命错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM