mysqli_fetch_assoc() 发出警告,它需要 mysqli_result,但给出了对象
mysqli_fetch_assoc() is giving a warning that it wants mysqli_result, but object given
我正在尝试使用准备语句从数据库中获取一些数据并遇到这个问题。
这是我的代码
function find_subject_by_id($id){
global $db;
$sql = "SELECT * FROM subjects ";
$sql .= "WHERE id=?";
//echo $sql;
/*Create a Prepared statement */
$result = mysqli_prepare($db, $sql);
confirm_result_set($result);
/*bind PARAMETERS for markers */
mysqli_stmt_bind_param($result, 'i', $id);
/* execute query */
mysqli_stmt_execute($result);
/*bind result variables*/
mysqli_stmt_bind_result($result, $id, $menu_name, $position, $visible);
/*fetch value*/
mysqli_stmt_fetch($result);
$subject = mysqli_fetch_assoc($result); //the warning is here
/*close connection*/
mysqli_stmt_close($result);
return $subject; //returns an assoc array
}
我对准备陈述和学习还很陌生,有人可以帮我找出我在这里遗漏了什么。
如果问题看起来重复或愚蠢,请不要介意。谢谢!
通过使用 mysql_stmt_bind_result
,您可以将特定列绑定到您指定的变量。
然后你可以像这样获取结果
while(mysqli_stmt_fetch($result)){
printf ("%s\n", $menu_name);
}
或使用您绑定的任何其他变量。
编辑:
您可以将语句用作关联数组:
$mysqliresult = mysqli_stmt_get_result($result);
这会将其转换为 MySqliResult
之后你可以做
$subject = mysqli_fetch_assoc($mysqliresult);
获取关联数组
我正在尝试使用准备语句从数据库中获取一些数据并遇到这个问题。
这是我的代码
function find_subject_by_id($id){
global $db;
$sql = "SELECT * FROM subjects ";
$sql .= "WHERE id=?";
//echo $sql;
/*Create a Prepared statement */
$result = mysqli_prepare($db, $sql);
confirm_result_set($result);
/*bind PARAMETERS for markers */
mysqli_stmt_bind_param($result, 'i', $id);
/* execute query */
mysqli_stmt_execute($result);
/*bind result variables*/
mysqli_stmt_bind_result($result, $id, $menu_name, $position, $visible);
/*fetch value*/
mysqli_stmt_fetch($result);
$subject = mysqli_fetch_assoc($result); //the warning is here
/*close connection*/
mysqli_stmt_close($result);
return $subject; //returns an assoc array
}
我对准备陈述和学习还很陌生,有人可以帮我找出我在这里遗漏了什么。 如果问题看起来重复或愚蠢,请不要介意。谢谢!
通过使用 mysql_stmt_bind_result
,您可以将特定列绑定到您指定的变量。
然后你可以像这样获取结果
while(mysqli_stmt_fetch($result)){
printf ("%s\n", $menu_name);
}
或使用您绑定的任何其他变量。
编辑:
您可以将语句用作关联数组:
$mysqliresult = mysqli_stmt_get_result($result);
这会将其转换为 MySqliResult
之后你可以做
$subject = mysqli_fetch_assoc($mysqliresult);
获取关联数组