没有mysql错误的mysql“boolean given”

时间:2015-05-28 10:58:01

标签: php mysql

我收到了错误

connected
`Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given`

我知道这意味着提供的de sql存在问题,但sql很好,我无法打印错误。还有其他方法吗?

我的完整代码:

<?php include "inc/config.php"; ?>
<?php include "inc/funciones.php"; ?>
<?php header('Content-Type: text/html; charset=UTF-8'); ?>
<?php 

if(mysql_select_db($db_db2)){
    echo "connected<br>";
}

$query = 'SELECT * FROM trabajo limit 5';
mysql_query("SET NAMES 'utf8'");
$result = mysql_query($query);

try {
    while($estado = mysql_fetch_assoc($result)){

        $query  = 'UPDATE trabajo set estadoActual=(SELECT nombreTarea FROM 
                     tareastrabajo where 
                     numeroEntrada = "'.$estado["numeroEntrada"].'" 
                     AND fechaCompletada is not null 
                     order by fechaCompletada DESC limit 1) 
                     where numeroEntrada="'.$estado["numeroEntrada"].'"';
        mysql_query("SET NAMES 'utf8'");
        $result = mysql_query($query);

    }

} catch (Exception $e) {
    echo $e->getMessage();
    echo "---";
    echo mysql_error();
}
?>

正如你所看到的,连接很好,所以没有问题。 我也试过了经典

or die(mysql_error());

但结果相同。

声明: 请避免回答和评论指出mysqli或PDO。 我自己理解这些问题,我们正在迁移它。 与此同时,我们必须处理这个问题。

编辑:谢谢!我是超过$结果。我早上半天浪费了多少蹩脚的方式......

1 个答案:

答案 0 :(得分:1)

要扩展Jon Stirling的评论,你已经在while循环的第一次迭代中用$result语句的结果覆盖了UPDATE变量。

因此,第二次访问条件时会发生错误

while ($estado = mysql_fetch_assoc($result))

来自docs

  

对于其他类型的SQL语句,INSERT,UPDATE,DELETE,DROP等,mysql_query()成功时返回TRUE,错误时返回FALSE。

这个布尔值被传回mysql_fetch_assoc()导致异常..没有mysql错误。

回应Geoff Atkin的评论.. mysql_fetch_assoc()

不应该处理任何返回的行