您好我有一个类文件,其中包含从mySQL数据库中检索用户的函数。代码如下:
class userdbase
{
public function fetchUsers()
{
$db = new mysqli('localhost', 'user', 'pass', 'dbase');
if($db->connect_errno > 0)
{
die('Unable to connect to database [' . $db->connect_error . ']');
}
$sql = "SELECT username from `users`";
if(!$result = $db->query($sql))
{
die('There was an error running the query [' . $db->error . ']');
}
while($row = $result->fetch_assoc())
{
$users[] = $row['username'];
}
$result->free();
$db->close();
return array($users);
}
}
上面的代码使用print_r($ dbase-> fetchUsers())返回如下数组:
Array
(
[0] => Array
(
[0] => user1
[1] => user2
[2] => user3
)
)
我无法在主文件中循环遍历数组,在该文件中我引用了类中的函数。我使用的代码如下:
<?php
require("dbase.php");
$dbase = new userdbase();
foreach($dbase->fetchUsers() as $result) //this doesn't work
{
print "$result";
}
?>
更精通PHP的人能指出正确的方法吗? 提前谢谢!
答案 0 :(得分:1)
在此处构建用户数组[]:
while($row = $result->fetch_assoc())
{
$users[] = $row['username'];
}
$ users是一个数组,但是当你返回它时,将它包装在array()中意味着你返回的数组数组不是你当时处理的数组。
解决方案只是返回$ users。
答案 1 :(得分:1)
而不是
return array($users);
只返回
return $users;
并简单地应用您的foreach
循环