将数据插入数组

时间:2013-06-05 23:27:08

标签: php sql

我对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;
    }
}
    ?>

5 个答案:

答案 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)

新的mysqli(..)然后mysql _...你使用了错误的库。如果你使用mysqli使用它来获取数据

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,因此数组将保持为空。