【发布时间】:2016-02-10 12:44:14
【问题描述】:
我正在尝试调试我自己没有编写的 SQL 语句:
$stmt = $dbh->prepare("
SELECT
Customer.Primary_Email AS EMAIL,
...
FROM Order_SG
INNER JOIN Customer USING (Customer__)
INNER JOIN Order_SG_Detail USING (Order_SG__)
INNER JOIN Product_Ref USING (Product_Ref__)
INNER JOIN Reduction USING (Reduction__)
WHERE Order_SG.Server__ IN (:servers)
...
AND `DATE` BETWEEN :startDate AND :endDate
LIMIT :limit
OFFSET :offset");
$stmt->bindValue(':servers', implode(',', $servers));
$stmt->bindValue(':startDate', $startDate);
$stmt->bindValue(':endDate', $endDate);
$stmt->bindValue(':limit', $limit, \PDO::PARAM_INT);
$stmt->bindValue(':offset', $offset, \PDO::PARAM_INT);
如何在绑定后检索语句?我可以echo 的字符串很好。
【问题讨论】:
-
in语句不起作用。in列表由一个带有逗号的字符串值组成。 -
参数绑定不像复制粘贴。尤其是在使用数据库原生准备好的语句时,这些值实际上并没有“放入语句中”。该语句仍然是所写的语句,并且值仍然与其分开。
-
我猜你实际上要问的是stackoverflow.com/questions/920353/…
-
@deceze 您没有正确阅读 Gordon 的问题和答案。
-
我不同意这一点。
标签: php mysql sql parameterbinding