MySQL UPDATE WHERE的行为与SELECT WHERE的行为不同

时间:2018-07-04 18:11:23

标签: php mysql

我在数据库中有一个$ id =“ 4bd4e441-4866-097f-8b59-5b33a72029b5”。当我执行SELECT时,它会起作用:

 $sql = "SELECT *   FROM Open_Cases WHERE id = $id";
 $q = $pdo->prepare($sql);
 $q->execute(array($id));

但是,当我尝试执行UPDATE时不起作用:

 $sql = "UPDATE Open_Cases set status = '2' 
        WHERE   id = $id";          
 $q = $pdo->prepare($sql);
 $q->execute(array($id));

我看到一条错误消息:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column '4bd4e441' in 'where clause'' in ...

如果$ id =数值,则SELECT和UPDATE的工作原理相同。但是,当$ id的值为字母数字时,它将失败。

0 个答案:

没有答案