2

我正在尝试在 PHP 函数中创建一个多维数组。但这似乎不起作用。我写的函数:

//Get newsitems
function getNews() {
    $result = mysql_query("SELECT * FROM news WHERE archived='0' ORDER BY `id` DESC")
    or die(mysql_error());

    $array = array();

    while($row = mysql_fetch_array($result)) {

        $array[] =  array ( 'title' => $row['title'], 
                            'content' => $row['content'], 
                            'date' => $row['pagid'], 
                            'image' => $row['image'], 
                            'youtube' => $row['youtube']

    }

    return $array;
}

然后我试图通过这样做来获得一个数组:

$aNews = getNews();

当我打印这个数组时,什么都没有显示。我究竟做错了什么?数据库查询不返回任何错误。

4

1 回答 1

2

您有语法错误,您没有关闭括号并终止数组周围的行。

改成:

    $array[] =  array ( 'title' => $row['title'], 
                        'content' => $row['content'], 
                        'date' => $row['pagid'], 
                        'image' => $row['image'], 
                        'youtube' => $row['youtube'] ); // <-- this

因此,您应该遇到致命错误,白屏通常表示致命错误,但错误报告/显示已关闭。对于将来的调试,您可以查看错误日志或打开错误:

error_reporting(E_ALL);
ini_set('display_errors', '1');

旁注:

  • mysql_*库已弃用,请考虑升级到现代 API,例如 MySQLi 或 PDO。
  • 如果您必须使用这个库,至少更改为,mysql_fetch_assoc()因为您只对关联数组感兴趣。
于 2013-07-12T07:35:52.083 回答