php - 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 的值是字母数字时,它会失败。
解决方案
推荐阅读
- sql-server - 使用 TransactionScope 时获取 System.Reflection.TargetInvocationException
- angular - 怎么看里面
jmeter的元素? - php - 为什么 Cakephp 的 Controller 第二个测试用例总是失败
- apache-kafka - 使用 Kafka Manual 确认偶尔会收到“Kafka Listner Exception : Commit cannot be completed”
- python - Python 3 + Mysql:不正确的字符串值'\xF0\x9F\x85\x97\xF0\x9F...'
- postgresql - 如何列出给定数据库模式名称的所有表的 MAX(id)?
- jquery - 我在进行 ajax 调用时传递的一个参数中有一个“&”
- javascript - 使用纯 JavaScript 进行简单的拖放
- mysql - 如何在 docker-compose.yml 中使用多行命令标志配置 MySQL 实例
- excel - 有没有办法使用excel vba比较两个不同的数据集