我没什么问题。 我想从数组中保存数据库中的记录。 但我不知道它不起作用:/ 我很感激你的帮助。
<?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);
?>
答案 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
在对象中获取比以程序方式获取要好得多。