简单地说,我想用多个条件在数据库中搜索表。如您所见,我尝试在 MySQL 查询中使用OR
andLIKE
语句。
例如:有一个带有imie
列的记录,用Alexis
值填充。当$_POST['imie']
通过带有Alexis
值的代码时,结果是好的,我得到了想要的记录,但即使$_POST['imie']
不包含整个字符串(例如Alex
)我也想得到它,所以我尝试添加%
MySQL 查询。不幸的是,它没有给我任何结果(在我看来,MySQLibind_param
删除了这些字符,以防止 SQL 注入,对吗?)。
如何将$_POST['imie']
值放在%
我可以获得正确LIKE
子句结果的符号中?有没有更整洁、更充分的方法来仅按给定值搜索记录?
foreach ($_POST as $key => $value) {
if(isset($value)) {
$value = "%".$value."%"; // I also tried "'%".$value."%'"
}
}
$search = $db->prepare("SELECT * FROM klienci WHERE
PESEL LIKE ? AND
imie LIKE ? AND
nazwisko LIKE ? AND
numer_domu LIKE ? AND
ulica LIKE ? AND
miasto LIKE ? AND
kod_pocztowy LIKE ?");
$search -> bindParam('sssssss', $_POST['PESEL'], $_POST['imie'], $_POST['nazwisko'], $_POST['numer_domu'], $_POST['ulica'], $_POST['miasto'], $_POST['kod_pocztowy']);
$search->execute();
$result = $search->get_result();
while ($row = $result->fetch_array())
{
foreach ($row as $r)
{
print "$r ";
}
print "\n";
}
感谢您提前回复