下面我使用单例设计模式连接到database.In,我在我的数据库上运行了一个查询,我想从这个查询中获取数据:
$db = Db::connect();
$query = $db->query("SELECT * FROM myTable");
while ($row = ???) {
// echo 'myTable' fields here. like = echo $row['someField']
}我的Db类:
class Db
{
private $connection;
private static $instance;
private function __construct()
{
$host = "localhost";
$user = "root";
$pass = "";
$name = "dictionary";
$this->connection = new mysqli($host, $user, $pass, $name);
}
public static function connect()
{
if (self::$instance == null) {
self::$instance = new Db();
}
return self::$instance;
}
public function query($sql)
{
$result = $this->connection->query($sql);
$records = array();
while ($row = $result->fetch_assoc()) {
$records[] = $row;
}
return $records;
}
}在我的代码中,我应该写什么而不是????
发布于 2016-05-01 13:22:35
替换
while ($row = ???) {
// echo 'myTable' fields here. like = echo $row['someField']
}使用
foreach($query as $row)
echo $row['someField'];注意:例如,您可能希望将$query重命名为$rows,因为这是一个更合适的名称。
发布于 2016-05-01 13:25:44
在while循环的每次迭代中,使用array_shift()函数从结果集中获取当前行,如下所示:
while ($row = array_shift($query)) {
echo $row['someField'] . "<br />";
}以下是参考资料:
array_shift()发布于 2016-05-01 13:29:49
对数据库类的->query()方法的调用将返回一个结果行数组。因此,您所需要做的就是像任何其他数组一样处理该数组。
$db = Db::connect();
$rows = $db->query("SELECT * FROM myTable");
foreach ($rows as $row ) {
echo $row['someField'];
}https://stackoverflow.com/questions/36967098
复制相似问题