【发布时间】:2016-06-08 21:52:44
【问题描述】:
我正在阅读这个答案:PHP - Using PDO with IN clause array
它使用代码:
$in_array = array(1, 2, 3);
$in = str_repeat('?,', count($in_array) - 1) . '?';
$sql = "SELECT * FROM my_table WHERE my_value IN ($in)";
$stm = $db->prepare($sql);
$stm->execute($in_array);
$data = $stm->fetchAll();
谁能解释他们为什么使用
$in = str_repeat('?,', count($in_array) - 1) . '?';
改为关闭:
$in = str_repeat('?,', count($in_array));
我很困惑,无法弄清楚尾随- 1) . '?'背后的逻辑
【问题讨论】:
-
因为它将以
IN (?,?,?,)结尾(请参阅额外的逗号) -
正如@Federico 所说......这是关于尾随逗号的。对于三个占位符,只需要两个逗号。可能是
$in = '?' . str_repeat(',?', count($in_array) - 1);