这是我的代码:
if ($stmt = $mysqli->prepare ( "SELECT album_no, album_name FROM $albumTable WHERE b_username=? parent_name=? LIMIT 100" ))
{
$stmt->bind_param ( "ss", $a_owner,$p_name); // bind parameters for markers
$stmt->execute ();
$stmt->bind_result ($album_no,$album_name ); // bind result variables
$stmt->fetch (); /* fetch value */
if (isset ( $album_no ))
{
$array = array();
$array['album_no'] = $album_no;
$array['album_name'] = $album_name;
}
/* close statement */
$stmt->close ();
}
/* close connection */
$mysqli->close ();
并且它有效,唯一的问题是它只返回一行...我知道我需要一段时间()来浏览其他行但我不知道在使用准备时将其放在哪里陈述:( 搜索我找到的文档" fetchAll()"但这似乎只适用于" PDO"我不知道PDO是什么:(
提前致谢
答案 0 :(得分:2)
这可能就是你要找的东西:
$array = array();
while ($stmt->fetch())
{
if (isset ($album_no))
{
$array['album_no'][] = $album_no;
$array['album_name'][] = $album_name;
}
}
fetch()
从准备好的语句中获取绑定变量的结果。一旦没有更多行要返回,fetch()
将返回NULL并且循环体将不再被执行。
答案 1 :(得分:1)
你需要获取一个循环:
while($stmt->fetch()) {
... do stuff with your bound variables
}
一旦没有可用于获取的行,fetch()调用将返回false并终止while()循环。