Php 无法在SELECT中获得所需的结果
我是PHP新手。我正在尝试根据用户查询显示搜索结果。我的问题是,我没有得到所有其他类似的搜索结果(只有确切的结果显示)。从安全角度看,这是我正在实现的正确方法吗?提前谢谢Php 无法在SELECT中获得所需的结果,php,select,mysqli,Php,Select,Mysqli,我是PHP新手。我正在尝试根据用户查询显示搜索结果。我的问题是,我没有得到所有其他类似的搜索结果(只有确切的结果显示)。从安全角度看,这是我正在实现的正确方法吗?提前谢谢 define('HOST','localhost'); define('USER','root'); define('PASSWORD_HOST',''); define('DATABASE','test'); if(defined('HOST') && defined('USER') &&
define('HOST','localhost');
define('USER','root');
define('PASSWORD_HOST','');
define('DATABASE','test');
if(defined('HOST') && defined('USER') && defined('PASSWORD_HOST') && defined('DATABASE')){
$conn = mysqli_connect(HOST, USER, PASSWORD_HOST, DATABASE);
}else{
die(connection_failed.mysqli_connection_error());
}
这里是HTML
<div class="container">
<div class="row">
<div class="col-sm-12">
<form action="" method="POST">
<h4>Search By</h4>
<input type="text" name="delName"/>
<button type="submit" name="submit">search</button>
</form>
</div>
</div>
</div>
搜寻
搜索
这里是PHP
if(isset($_POST['submit'])){
$delName = "%{$_POST['delName']}%";
$stmt =$conn->prepare("SELECT id, delName, medName, contact1, contact2, address, pin, creditLimitDealer FROM dealerentrytable WHERE delName LIKE ?");
$stmt->bind_param("s", $delName);
$stmt->execute();
$stmt->bind_result($id, $delName, $medName, $contact1, $contact2,$address,$pin,$creditLimitDealer);
while ($stmt->fetch()) {
echo "<table>";
echo "<tr><td>ID: $id</td>";
echo "<td>delName: $delName</td>";
echo "<td>medName: $medName</td>";
echo "<td>contact1: $contact1</td>";
echo "<td>contact2: $contact2</td>";
echo "<td>address: $address</td>";
echo "<td>pin: $pin</td>";
echo "<td>creditLimitDealer: $creditLimitDealer</td></tr>";
echo "</table>";
}
$stmt->close();
}
?>
if(isset($\u POST['submit'])){
$delName=“%{$\u POST['delName']}%”;
$stmt=$conn->prepare(“选择id、delName、medName、contact1、contact2、address、pin、creditLimitDealer FROM dealerentrytable,delName喜欢在哪里?”);
$stmt->bind_参数(“s”,$delName);
$stmt->execute();
$stmt->bind_result($id、$delName、$medName、$contact1、$contact2、$address、$pin、$creditLimitDealer);
而($stmt->fetch()){
回声“;
回显“ID:$ID”;
回显“delName:$delName”;
echo“medName:$medName”;
回显“contact1:$contact1”;
回显“contact2:$contact2”;
echo“地址:$address”;
回显“pin:$pin”;
echo“creditLimitDealer:$creditLimitDealer”;
回声“;
}
$stmt->close();
}
?>
如果要使用通配符搜索$delName
,则需要将其设置为“%”“%”“%”$delName.”%”
,或者可以使用concat(“%”、?、“%”)在SQL中解析通配符。
-现在查看并签出它正在显示完整的表数据。。。!不知道是怎么回事。你需要更好地解释一下,举例说明,你想要的结果到底是什么?数据库的内容是什么?阅读MySQL中类似于的手册,它可能会阐明它的作用。好的,我会这么做。。不管怎样,从安全角度来看,这是正确的方法吗?