将记录存储在数组中

时间:2014-11-27 02:01:35

标签: php mysql

我没什么问题。 我想从数组中保存数据库中的记录。 但我不知道它不起作用:/ 我很感激你的帮助。

<?php
require ('common.php');

$query ="SELECT gallery_cat_id, gallery_cat_name FROM gallery_catalogs";
try{
    $stmt=$db->prepare($query);
    $stmt->execute();
    }
            catch (PDOException $ex)
    {
        die('Nie nawiązano połączenia: ' . $ex->getMessage());              
    }


    $album=array();
    while($row=$stmt->mysql_fetch_assoc())
        {
        $album[$row['gallery_cat_id']]=$row['gallery_cat_name'];
        }

    echo '<pre>';
    print_r($album);

?>

2 个答案:

答案 0 :(得分:2)

如果您将 mysqli 与面向对象的接口与预准备语句一起使用,则可以使用->fetch()

$query = "SELECT gallery_cat_id, gallery_cat_name FROM gallery_catalogs";

try{
    $stmt = $db->prepare($query);
    $stmt->execute();
}
catch (PDOException $ex) {
    die('Nie nawiązano połączenia: ' . $ex->getMessage());              
}

$album = array();

$stmt->bind_result($gallery_cat_id, $gallery_cat_name);
while($stmt->fetch()) {
    $album[$gallery_cat_id] = $gallery_cat_name;
}

echo '<pre>';
print_r($album);

如果您拥有mysqlnd驱动程序,则可以使用->get_result(),然后使用->fetch_assoc()

$query ="SELECT gallery_cat_id, gallery_cat_name FROM gallery_catalogs";

try{
    $stmt = $db->prepare($query);
    $stmt->execute();
}
catch (PDOException $ex) {
    die('Nie nawiązano połączenia: ' . $ex->getMessage());              
}

$album = array();

$results = $stmt->get_result();

while($row = $results->fetch_assoc()) {
    $album[$row['gallery_cat_id']] = $row['gallery_cat_name'];
}
// i prefer this one

所以这条线没有意义:

$stmt->mysql_fetch_assoc() // ??? statement object mixed up with old API?

答案 1 :(得分:0)

从数组$ album

开始替换代码

试试这个:

$album=array();
while( $row = $stmt->fetch(PDO::FETCH_OBJ) )
{
    $album[$row->gallery_cat_id] = $row;   // $row -> will store both ID Value and the Category Name Value in the array..
}

echo '<pre>',print_r($album),'</pre>';     // to view the records fetched in preformatted way

在对象中获取比以程序方式获取要好得多。