我从多个表单字段中获取值并使用准备好的语句来查询数据库。虽然下面的代码适用于在单个字段中输入的条件,但如果我在多个字段中输入,它不会返回任何值。原因似乎是页面只处理输入的最后一个字段。当我之前echo
的值我只得到一个值...$params
$results->execute(array($params));
这是我所拥有的:
<?php
$dbhost = "ip_address";
$dbname = "db_name";
$dbuser = "db_login";
$dbpass = "db_pass";
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
$query = "SELECT * FROM tbl_name WHERE 1=1";
foreach ($_POST as $k => $v)
{
if(!empty($v)) {
$query .= " AND $k LIKE ?";
$params[] = '%'.$v;
}
}
$results = $conn->prepare($query);
$results->execute($params);
$results->bindColumn(1, $no);
$results->bindColumn(2, $date);
$results->bindColumn(3, $name);
$results->bindColumn(4, $id);
$results->bindColumn(5, $path);
?>
编辑:
我将上面的代码更改为工作脚本