我对PHP很陌生,但我是一位经验丰富的Java程序员。
我知道我想用我的代码实现什么,即
while(result.Hasnext()){ array.add(result.next)}
现在我有以下php代码:
$myArr = array();
$query = 'SELECT message from shoutbox';
$result = $this->db->query($query);
我如何将所有数据添加到php中的数组中?我知道这很简单,但我一直在寻找各种例子,只是简单地找到了一个。
我的完整数据库类
<?php
class database{
private $server = "db9.meebox.net";
private $usedb = "marcrasm_website";
private $user = "******";
private $pass = "******";
private $db;
public function __construct() {
$this->db = new mysqli($this->server, $this->user, $this->pass, $this->usedb);
if ($this->db->connect_errno) {
printf('Error: Connect failed: %s', $mysqli->connect_error);
exit();
}
}
public function sendMessage($message){
$currentTime = $_SERVER['REQUEST_TIME'];
$date = date('Y/m/d H:i:s');
$query = "INSERT INTO shoutbox VALUES ('NULL','$message','$date')";
$this->db->query($query);
}
public function loadMesssages(){
$query = 'SELECT message from shoutbox ORDER BY created DESC';
$result = $this->db->query($query);
if (mysql_num_rows($result) == 0){
//no results
}else{
// returned at least one result.
while($row = mysql_fetch_assoc($result)){
$myArr [] = $row;
}
}
return $myArr;
}
}
?>
答案 0 :(得分:2)
我假设您使用的是PDO
。最简单的解决方案是:
$result = $this->db->query($query);
$array = $result->fetchAll();
是的,你怎么能用documentation 来实现这个目标呢?
更新:
在您编辑问题后,我发现您没有使用PDO
。但是,编辑代码来帮助您只需一个答案(没有给出完整的解决方案)就太多了。你可以的! ;)
答案 1 :(得分:1)
if (mysql_num_rows($result) == 0){
//no results
}else{
// returned at least one result.
while($row = mysql_fetch_assoc($result)){
$myArr [] = $row;
}
}
答案 2 :(得分:1)
while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
$myArr[] = $row;
}
答案 3 :(得分:0)
你如何查询数据库?
但基本上你可以在PHP中添加一个数组,如下所示:
$some_array[] = "some value";
或设置特定密钥:
$some_array[3] = "another_value";
如果您的查询返回一个数组,您可以简单地将返回值分配给您的数组(您的$return
现在就是一个数组)
但是,这很大程度上取决于db->query()
总结一下:
您可以将单个项目添加到数组中,或者只是将变量分配给其他数组。还有一些函数,如array_merge
,它们与数组相结合。只需看看一些与数组相关的PHP手册页。
答案 4 :(得分:-1)
可以这么简单:
while ( $row = mysql_fetch_assoc( $result ) ) {
$myArr[] = $row;
}
如果查询没有选择任何行,则第一次运行时循环条件将为false,因此数组将保持为空。