【发布时间】:2013-09-01 12:01:34
【问题描述】:
我有一个函数应该使用准备好的语句从 MySQL 数据库中获取数据并将其放入一个数组中,并且我有一段代码应该从该函数中获取数据并将其放入一个表中。这两段代码如下。
函数
function list_students($connect) {
if($stmt = mysqli_prepare($connect, "SELECT id,fullname,gender,dateofbirth,passed FROM students ORDER BY fullname ASC LIMIT 0, 20")) {
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $id, $fullname, $gender, $dateofbirth, $passed);
}
$results = array();
while(mysqli_stmt_fetch($stmt)) {
$results['id'] = $id;
$results['fullname'] = $fullname;
$results['gender'] = $gender;
$results['dateofbirth'] = $dateofbirth;
$results['passed'] = $passed;
}
return $results;
}
应该从函数中获取数据的代码
<?php
$list = list_students($connect);
foreach($list as $variable) {
?>
<tr>
<td><? echo $variable["id"]; ?></td>
<td><? echo $variable["fullname"]; ?></td>
<td><? echo $variable["gender"]; ?></td>
<td><? echo $variable["dateofbirth"]; ?></td>
<td><? echo $variable["passed"]; ?></td>
</tr>
<?php
}
?>
我可以想象我做错了什么,因为我通过这段代码获得的数据与数据库中的数据相差甚远。重要的是要知道我在表student 中有三行,上面的代码在表中添加了五行。
有人可以帮我解决这个问题,或者让我朝着正确的方向前进吗?
我希望我已经解释得足够清楚了。如果我没有,请告诉我,以便我改进我的问题。
干杯
编辑:
我尝试使用this,但据我所知mysqli_prepare 不支持fetch_array。
【问题讨论】:
-
不幸的是,这不起作用。我读到如果我想使用
get_result(),我需要 PHP 5.3.0 或更高版本。根据this,我尝试使用bind_result和fetch,但没有返回任何内容。 -
那么您必须手动组装阵列。这并不难。
标签: php arrays function foreach mysqli