给出无法找到错误的mysql_fetch_array()布尔值

时间:2013-03-27 04:15:20

标签: php mysql wordpress buddypress

我现在在修复另一个问题后在我的错误日志中得到这个。我已经查看了stackoverflow上的所有内容,我想出的就是让它显示错误,问题是我无法找到错误显示的位置,因此我无法以这种方式进行故障排除。任何人都可以帮我一些指导吗?我不是想复制,我只是想了解发生了什么,对不起,如果这是错位的(如果是,请告诉我!)。

这是错误:

[Wed Mar 27 01:36:41 2013] [error] PHP Warning:  mysql_fetch_array() expects parameter 1 to be resource, boolean given in /nas/wp/www/cluster-1434/XXXXXXX/wp-content/themes/mytheme/functions.php on line 574
[Wed Mar 27 01:36:14 2013] [error] PHP Warning:  mysql_fetch_array() expects parameter 1 to be resource, boolean given in /nas/wp/www/staging/XXXXXXX/wp-content/themes/mytheme/functions.php on line 572

这是第572行:

  

$ ll = mysql_fetch_array($ getLL);

这是第574行:

  

$ cou = mysql_fetch_array($ getCount);

以下是代码:

<?php
$con = conDB();
$x = 0;
//if ( false === ( $zip = get_transient( 'distinct_zips' ) ) ) {
$getZips = mysql_query("SELECT Distinct(meta_value) FROM wp_postmeta WHERE meta_key='_gmap_zip'",$con);
//$zip = mysql_fetch_array($getZips);
//  set_transient('distinct_zips', $zip, 60*5);
//}
while($zip = mysql_fetch_array($getZips)){
$getLL = mysql_query("SELECT * FROM zipcodes WHERE zip=".$zip['meta_value'],$con);
$ll = mysql_fetch_array($getLL);
$getCount = mysql_query("SELECT Count(*) FROM wp_postmeta WHERE meta_key='_gmap_zip' AND meta_value=".$zip['meta_value'],$con);
$cou = mysql_fetch_array($getCount);
$zipvalue = $zip['meta_value'];
$getNewest = mysql_query('SELECT * FROM wp_postmeta WHERE meta_key="_gmap_zip" AND meta_value="'.$zipvalue.'" LIMIT 5',$con);
if(strlen($ll['lat'])){
?>

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

查询:

$getLL = mysql_query("SELECT * FROM zipcodes WHERE zip=".$zip['meta_value'],$con);
$getCount = mysql_query("SELECT Count(*) FROM wp_postmeta WHERE meta_key='_gmap_zip' AND meta_value=".$zip['meta_value'],$con);

失败返回​​false,导致这两个警告。

作为一般经验法则,在处理查询时应始终检查错误。 你可以通过运行:

来做到这一点
if (!empty(mysql_error())) // error

答案 1 :(得分:0)

try var_dump($getLL)

由于mysql_query()执行中的任何错误,它似乎返回false。在将其传递给另一个函数之前,请务必仔细检查mysql函数的返回答案。

while($zip = mysql_fetch_array($getZips)){
$getLL = mysql_query("SELECT * FROM zipcodes WHERE zip=".$zip['meta_value'],$con);
if($getLL == false)
{
    echo mysql_error();
    exit;
}
$ll = mysql_fetch_array($getLL);
$getCount = mysql_query("SELECT Count(*) FROM wp_postmeta WHERE meta_key='_gmap_zip' AND meta_value=".$zip['meta_value'],$con);
$cou = mysql_fetch_array($getCount);
$zipvalue = $zip['meta_value'];
$getNewest = mysql_query('SELECT * FROM wp_postmeta WHERE meta_key="_gmap_zip" AND meta_value="'.$zipvalue.'" LIMIT 5',$con);

答案 2 :(得分:0)

请在$getLL = mysql_query(...

之后使用以下代码
if (!$getLL) { 
    die('Invalid query getLL: ' . mysql_error());
}

以及$getCount = mysql_query(...

之后的代码
if (!$getCount) { 
    die('Invalid query getCount: ' . mysql_error());
}