我应该如何为这种类型的查询编写我的 PDO Prepare 和 bindValue/param 语句,其中我检查值是否不为 null 然后只将它添加到查询字符串.....
$query = "SELECT * FROM cabs WHERE DATE='$date' ";
if ($mode!=='' || $mode!=="")
$query .="AND MODE='$mode' ";
if ($tfno!=='')
$query .="AND TFNO='$tfno' ";
$query .="ORDER BY TIME";
最佳答案
快速回答,无需测试:
<?php
$params = array(':date' => $date);
$query = "SELECT * FROM cabs WHERE DATE=':date' ";
if ($mode!=='' || $mode!=="") {
$query .="AND MODE=':mode' ";
$params[':mode'] = $mode;
}
if ($tfno!=='') {
$query .="AND TFNO=':tfno' ";
$params[':tfno'] = $tfno;
}
$query .="ORDER BY TIME";
$req = $dbh->prepare($query);
$req->execute($params);
每次您的查询获得更多过滤器时,只需插入参数数组,并且使用名称应该更容易,我不确定 array_push
是否会保留顺序,所以..
关于php - 如何将此 mySql 查询转换为 PDO 格式...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24778523/