$query = $_POST["name"];
$mob = $_POST["phone"];
此查询是否正确
$sql="SELECT * FROM oath WHERE name='%".$query."%' && phone='%".$mob."%'";
答案 0 :(得分:2)
您至少有三个问题:
%
时,请使用LIKE
运算符检查特定的字符串是否与指定的模式匹配&&
替换为AND
以合并您的布尔表达式(MySQL支持&&
运算符,但其他数据库引擎不支持)您的声明:
$sql = "SELECT * FROM oath WHERE name LIKE '%".$query."%' AND phone LIKE '%".$mob."%'";
准备好的声明:
<?php
...
# Input
$name = $_POST["name"];
$phone = $_POST["phone"];
$name = "%$name%";
$phone = "%$phone%";
# Statement
$sql = "SELECT * FROM oath WHERE name LIKE :name AND phone LIKE :phone";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':phone', $phone);
# Execution
$statement->execute();
# Result
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
...
?>
答案 1 :(得分:0)
问题在这里:
name='%".$query."%'
... phone='%".$mob."%'"
在这里,您将equality comparison
即=
与wild card search
即%
混合在一起。
尝试一下:
$sql = "SELECT * FROM oath WHERE name LIKE '%".$query."%' AND phone LIKE '%".$mob."%'";
,也将&&
替换为AND
答案 2 :(得分:0)
尝试一下
stringsAsFactors