我是PDO(來自mysqli)的新手,我一直在尋找幾個小時,似乎無法弄清楚如何將WHERE和IN運算符與PDO預處理語句組合在一起。PHP PDO使用IN和WHERE運算符編寫語句
簡單WHERE(正常工作):
$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);
結合(不工作):
$value1 = 'val1';
$myArr = ['NY', 'PARIS', 'ROME'];
$q = str_repeat('?,', count($myArr) - 1) . '?';
$sql = "SELECT * FROM myTable WHERE column = ? AND cities IN ($q)";
$stmt = $db->prepare($sql);
$stmt->bindParam(1, $value1);
$stmt->execute($myArr);
在此先感謝!
什麼是'$ value1'我沒有看到它定義,爲什麼'$ myArr'在執行 – RiggsFolly
使用'→bindParam' **或**'→執行(ARRAY)',而不是兩者。 – mario
'column =?'應該是什麼? –