我無法在任何地方發現任何類似的問題,所以我想我會問,是否可以使用包含||
php運算符的變量。php在pdo查詢中使用變量或變量
例如;
if ($regionID == 9) {
$location = 'Car' || 'Bus' || 'Plane' || 'Train' || 'Bike' || 'Van';
} else {
echo 'something went wrong';
}
$sql=$conn->prepare("SELECT * FROM transport WHERE location = :location AND status = 2 ORDER BY ref LIMIT :limit OFFSET :start");
$sql->bindValue(':location', $location, PDO::PARAM_STR);
該查詢拋出;
PHP Catchable fatal error: Object of class PDOStatement could not be converted to string
我不知道是否因爲位置變量中的OR運算符,以及是否可以使用這種方式。
那麼,你應該使用'WHERE IN(」汽車','巴士',...)'代替。這就是通常的做法。 – Yang
'||'是布爾值或在PDO中。將它應用於字符串變量沒有意義。所以,我想你的問題的答案是「不」。 –
我不能使用WHERE IN,因爲如IF語句所示,如果regionID等於8,那麼$ location字符串將返回一些其他結果,因此在這種情況下,哪裏沒有意義。 'WHERE IN'可以工作的唯一方法是在每次重複查詢的if語句中包含一個不同的查詢 – user3763859