$sql = "SELECT message FROM sale WHERE seller_id=? && payment_date=? && bank=?";
$q = $conn->prepare($sql);
$result = $q->execute(array($user_id, $paydate, bank1|| bank2|| bank3));
如何糾正「bank1 || bank2 || bank3」的錯誤?如何把OR或pdo select查詢條件?
$sql = "SELECT message FROM sale WHERE seller_id=? && payment_date=? && bank=?";
$q = $conn->prepare($sql);
$result = $q->execute(array($user_id, $paydate, bank1|| bank2|| bank3));
如何糾正「bank1 || bank2 || bank3」的錯誤?如何把OR或pdo select查詢條件?
$sql = "SELECT message FROM sale WHERE seller_id=? AND payment_date=?
AND bank IN (?, ?, ?)";
$q = $conn->prepare($sql);
$result = $q->execute(array($user_id, $paydate, $bank1, $bank2 $bank3));
如果你有銀行的動態數量(例如,在數組$銀行):
$sql = "SELECT message FROM sale WHERE seller_id=? AND payment_date=? ";
$values = array($user_id, $paydate);
if ($banks) {
$sql .= " AND bank IN (" . implode(",",array_fill(0,count($banks),"?")) . ")";
$values = array_merge($values, array_values($banks));
}
$q = $conn->prepare($sql);
$result = $q->execute($values);
PS:我建議在SQL代替&&
和||
使用AND
和OR
。在標準SQL中,||
是字符串連接運算符。儘可能地養成編寫標準SQL的習慣是明智的。
非常感謝。 – zac1987
將數組放在數組中,然後將數組放入執行語句中。但由於您要查詢的銀行的動態數量,您還必須將&& bank=
更改爲&& bank in()
。
你不應該在這個問題上添加'php'標籤嗎? – luchosrock