PHP PDO 准备语句查询不替换

标签 php mysql pdo prepared-statement

我有一小段 PHP 代码:

$stm = $db->prepare($sql);
$result = $stm->execute($params);

$params 如下

array(1) {
  [0]=>
  string(3) "why"
}

然而,根据MySQL日志,发送给MySQL的$sql仍然包含一个问号:

1 Query SELECT a.* FROM article a
LEFT JOIN article_links al on a.id = al.from_article_id
WHERE al.to_article = '?'

我还缺少其他可以替换的东西吗?

最佳答案

您不需要在问号周围加上单引号:

SELECT a.* FROM article a
LEFT JOIN article_links al on a.id = al.from_article_id
WHERE al.to_article = ?;

关于PHP PDO 准备语句查询不替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8392059/

相关文章:

php - 从mysql表中获取最近30天的数据并按日期分组

php - SQLSTATE[HY093] : Invalid parameter number: parameter was not defined'

php - mysql SUM 列

mysql - 无法检查所有记录是否在字段中具有特定值

php - <audio>标签与PHP变量

php - 单击 <a> 后重新加载页面以从 PHP 获取新数据

php - 在 Woocommerce 3 中以编程方式向订单添加费用

php - SQL查询中的cakephp虚拟字段

php - 在 php 和 mysql 中使用 IP

php - Magento 产品订购报告在升级到 1.6.2.0 后返回 "No records found for this period"