我无法在任何地方发现任何类似的问题,所以我想我会问,是否可以使用包含||
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