SQL/PHP 数组,服务器警告

Posted

技术标签:

【中文标题】SQL/PHP 数组,服务器警告【英文标题】:SQL/PHP array, server warning 【发布时间】:2012-09-18 16:55:44 【问题描述】:

我正在尝试从数据库中提取信息并将其存储在数组中。 $row 正在返回信息,而 $categories 很懒惰,不做任何事情。服务器上有一条日志警告说:

php 通知:未定义索引:CATID 在 /www/zendsvr/htdocs/public/test/index.php 第 29 行

CATID 是从大约 1 到 1100 的自动增量 PK。我还成功地将 $row 条目分配给各个变量,但这个数组就是不想工作。

$query = 'SELECT CATID, CATDSC, CATPID, CATFEAT, CATURL FROM cecart.categories
WHERE CATURL!=\'\' ORDER BY CATFEAT DESC, RAND()';

while (($row = $stmt->fetch(Zend_Db::FETCH_ASSOC)) !== false) 
  $categories[$row['CATID']] =
    array('CATID' => trim($row['CATID']),
          'CATDSC' => trim($row['CATDSC']),
          'CATPID' => trim($row['CATPID']),
          'CATFEAT' => trim($row['CATFEAT']),
          'CATURL' => ($cat_img_dir . trim($row['CATURL'])));
  print($row['CATID'] . ' | ' . $categories['CATID']); // line 29

第 29 行输出:x | 应该是 x | x 如果数组工作正常

【问题讨论】:

您的查询是什么样的? 是的,请向我们展示您的查询,也许您的 PHP 中的哪一行是第 29 行。 【参考方案1】:
print($row['CATID'] . ' | ' . $categories['CATID']); // line 29

我猜你是要查找$categories[$row['CATID']],而不是$categories['CATID']。没有$categories['CATID']

【讨论】:

谢谢,这行得通: print($row['CATID'] . ' | ' . $categories[$row['CATID']]['CATID']);

以上是关于SQL/PHP 数组,服务器警告的主要内容,如果未能解决你的问题,请参考以下文章

MySQL/MariaDB 配置警告以抛出错误

用巨大的数组填充表

如何在godaddy服务器上传图像数组?

如何调试从 PHP 文件调用的 Perl

关于C中的结构,如何将数据从结构复制到字符串数组

警告:数组下标高于数组边界 [-Warray-bounds]