• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

pdo准备了包含更改变量列表的语句

php 来源:jppower175 10次浏览

设置可以具有多个可选过滤器的搜索。pdo准备了包含更改变量列表的语句

$sql = "SELECT * 
     FROM table 
     WHERE title = :title 
     AND filter1 = :filter1 
     AND filter2 = :filter2 
     AND filter3 = :filter3"; 
$query = $dbc->prepare($sql); 
$query->execute(
      array(
      ':title' => $title, 
      ':filter1' => $filter1, 
      ':filter2' => $filter2, 
      ':filter3' => $filter3 
      ) 
     ); 

此问题有时候过滤器变量将为空。如果过滤器是空的,那么任何值都可以工作。我曾尝试将空滤镜设置为通配符(%),但似乎不起作用。

if(empty($filter1)) $filter1 = '%'; 


===========解决方案如下:

您需要有条件地将它们添加到您的SQL和execute()中的SQLDATA中。

$filters = array(
    ':filter1': $filter1, 
    ':filter2': $filter2, 
    ':filter3': $filter3 
); 
$sql = "SELECT * FROM TABLE WHERE title = :title"; 
$sqldata = array(
    ':title' => $title 
); 
foreach ($filters as $key => $value) { 
    $sql .= " AND $key=$value"; 
    $sqldata[$key] => $value; 
} 
$query = $dbc->prepare($sql); 
$query->execute($sqldata); 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)