我是PDO的新手(来自mysqli),我一直在搜索几个小时,似乎无法弄清楚如何将WHERE和IN运算符与PDO预处理语句结合起来。
简单WHERE(工作正常):
tf.get_default_graph().finalize()
IN声明(工作正常)
$value1 = 'val1';
$value2 = 'val2';
$stmt = $pdo->prepare('SELECT * FROM mytable WHERE val1 = ? AND val2 = ?');
$stmt->bindParam(1, $value1);
$stmt->bindParam(2, $value2);
$stmt->execute();
合并(不合作):
$myArr = ['NY', 'PARIS', 'ROME'];
$q = str_repeat('?,', count($myArr) - 1) . '?';
$sql = "SELECT * FROM myTable WHERE cities IN ($q)";
$stmt = $db->prepare($sql);
$stmt->execute($myArr);
提前致谢!
答案 0 :(得分:0)
我认为这不起作用的原因是因为你正在使用两者
$stmt->bindParam(1, $value1);
$stmt->execute($myArr);
要使用数组并使其工作,请执行以下操作:
prepare($sql);
execute($myArr);
在$myArr
中,您应该包含columns = ?
应该包含的内容,您可以使用此array_unshift()
array_unshift($myArr, 'X');
array_unshift()
将其添加到数组的开头}
调用$myArr
后,变量[myArr] => Array
(
[0] => X
[1] => NY
[2] => PARIS
[3] => ROME
)
的值将如下所示:
prepare($sql);
execute($myArr);
现在您可以正确调用PDO语句:
-webkit-transform: translate3d(0px, 0px, 0px);
-webkit-mask-image: -webkit-radial-gradient(white, black);