2011-04-06 60 views
1

可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select如何解决这个错误“mysql_fetch_assoc()期望参数1是资源,布尔在”?

错误...

警告:mysql_fetch_assoc()预计 参数1是资源,布尔 在 给出/ home/andar/public_html/sistema/admin/cron.php on线19

$hoje = strtotime(date("d-m-Y")); 

    $db = new DBConfig(); 
    $db -> config(); 
    $db->conn(); 
    $query = mysql_query("SELECT * FROM products WHERE auto_pub = ".$hoje) or die(mysql_error()); 

    while($res = mysql_fetch_assoc($query)) { 
     $query = mysql_query("UPDATE products SET publicado = '0' WHERE auto_pub = ".$hoje) or die(mysql_error()); 
    } 

    $db->close(); 
+6

我不完全确定问题是什么,但无论如何,你正在覆盖循环内的'$ query'。这是不好的 – 2011-04-06 19:33:14

+0

是的,尽管它没有走得这么远。 – 2011-04-06 19:34:03

+0

@Pekka谢谢,这是问题:) – Hbug 2011-04-06 19:35:57

回答

2

$querywhile之前使用和while内...更改变量的名称$query2,例如:

$hoje = strtotime(date("d-m-Y")); 

$db = new DBConfig(); 
$db -> config(); 
$db->conn(); 
$query = mysql_query("SELECT * FROM products WHERE auto_pub = ".$hoje) or die(mysql_error()); 

while($res = mysql_fetch_assoc($query)) { 
    $query2 = mysql_query("UPDATE products SET publicado = '0' WHERE auto_pub = ".$hoje) or die(mysql_error()); 
} 

$db->close(); 

希望它能帮助。

+0

谢谢你的帮助! :-) – Hbug 2011-04-06 19:37:27

0

也许,你mysql_query返回false由于语法错误(您的日期没有加引号)。

2

为了确保当查询成功,你可以写,而只有执行:

if ($query) 
while($res = mysql_fetch_assoc($query)) { 
    mysql_query("UPDATE products SET publicado = '0' WHERE auto_pub = ".$hoje) or die(mysql_error()); 
} 

通知的情况下内环路$query=分配。对于UPDATE,你不想读取任何结果。无论如何,你正在检查or die

相关问题