我正在尝试创建一个搜索页面,该页面将允许用户在表单的“名称”和“位置”字段中键入值,然后将在 MYSQLi 查询中使用这些值。
但是这些值没有被解析到查询中。
正在从表单中$_POST
正确获取值,如果 say ,查询将起作用WHERE Name = 'name1'
,所以问题似乎是 bind_param 没有正确解析值。
为什么它不起作用?
$name = $_POST['name'];
$location = $_POST['location'];
if ($result = $mysqli->prepare("SELECT * FROM table WHERE Name = ?")) {
$result->bind_param("s", $name);
$result->execute;
if ($result->num_rows > 0) {
echo "<table>";
echo "<tr>";
echo "<th>Name </td>";
echo "<th>Location</td>";
echo "</tr>";
while ($row = $result->fetch_object()) {
echo "<tr>";
echo "<td>" . $row->Name . "</td>";
echo "<td>" . $row->Location . "</td>";
echo "</tr>";
}
echo "</table>";
}
}
$mysqli->close();