【发布时间】:2017-08-24 22:06:24
【问题描述】:
我正在尝试为应用实施搜索建议,并且需要搜索包含用户列表的数据库表。我需要脚本返回一个数组,其中包含符合条件的所有用户的详细信息(即,如果用户搜索“Jo”,它将返回名为“John”、“Joe”等的用户)。我已经尝试使用我的其他一些脚本的一部分来执行此操作,但我无法让 mysqli_fetch_array 方法正常工作。
每次用户键入内容时,我都会使用onTextChangedListener 来查询脚本,我相信这是正确的做法。我将在下面发布我的代码,如果需要更多信息,请告诉我。
$con = mysqli_connect(database details);
$name = $_POST["name"];
$statement = mysqli_prepare($con, "SELECT user_id, name, email FROM users WHERE name = ?");
mysqli_stmt_bind_param($statement, "s", $name);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $user_id, $name, $email);
$response = mysqli_fetch_array($statement, MYSQLI_ASSOC);
echo json_encode($response);
mysqli_close($con);
在 android studio 中出现错误:mysqli_fetch_array() expects parameter 1 to be mysqli_result。
【问题讨论】:
-
注意:
mysqli的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的mysql_query接口混淆。在您对程序风格投入过多之前,值得转换一下。示例:$db = new mysqli(…)和$db->prepare("…”)过程化接口是 PHP 4 时代引入mysqliAPI 时的产物,不应在新代码中使用。 -
JSteward 你检查答案了吗?