Php MYSQLi使用表单输入值选择查询
我试图创建一个搜索页面,允许用户在表单的“名称”和“位置”字段中键入值,然后在MYSQLi查询中使用 但是这些值没有被解析到查询中Php MYSQLi使用表单输入值选择查询,php,mysqli,Php,Mysqli,我试图创建一个搜索页面,允许用户在表单的“名称”和“位置”字段中键入值,然后在MYSQLi查询中使用 但是这些值没有被解析到查询中 $\u POST正在正确地从表单中获取值,如果说WHERE Name='name1',查询将起作用,因此问题似乎是bind\u参数没有正确地解析值 为什么不起作用 $name = $_POST['name']; $location = $_POST['location']; if ($result = $mysqli->prepare
$\u POST
正在正确地从表单中获取值,如果说WHERE Name='name1'
,查询将起作用,因此问题似乎是bind\u参数没有正确地解析值
为什么不起作用
$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();
$name=$\u POST['name'];
$location=$_POST['location'];
if($result=$mysqli->prepare(“从Name=?”的表中选择*)){
$result->bind_参数(“s”,$name);
$result->execute;
如果($result->num_rows>0){
回声“;
回声“;
呼应“姓名”;
回声“定位”;
回声“;
而($row=$result->fetch_object()){
回声“;
回显“$row->Name.”;
回显“$行->位置”;
回声“;
}
回声“;
}
}
$mysqli->close();
您是否启用了错误报告功能?小心MySQLi语句对象不能与fetch\u object()、fetch\u assoc()
一起使用,就像MySQLi::query()
一样。必须首先执行bind_resut()
将每个结果列绑定到变量引用中,然后调用$result->fetch()
。为什么我需要将每个值绑定到一列?正在使用上述代码检索数据。上面的fetch命令正在工作,其bind_参数与查询不工作。这就是我真正感到困惑的地方。谢谢。好的,我想我修好了。我将表单值直接连接到查询中,对输出的列使用bind_结果。仍然不知道这是否是一种“正确”的方法,但它似乎是有效的。