首页 > 解决方案 > MySQL UPDATE WHERE 的行为与 SELECT WHERE 不同

问题描述

我在数据库中有一个 $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 的值 = numeric,则 SELECT 和 UPDATE 的工作方式相同。但是,当 $id 的值是字母数字时,它会失败。

标签: phpmysql

解决方案


推荐阅读