PHP和MySQL:简单查询失败

时间:2014-02-18 08:02:39

标签: php mysql sql

我的php代码上有很多sql查询,除了这个以外,所有这些都运行良好。

$sql_pay = "SELECT * FROM transaccion_cobro WHERE codigo='A2131231' AND idEstadoTransaccion=2";
$query_pay=mysql_query($sql_pay,$db);
$num_pay = mysql_num_rows($query_pay);

这是我得到的错误:

mysql_num_rows() expects parameter 1 to be resource, boolean given

我猜mysql_query失败并返回false。但我不知道为什么。如果我在“MySQL Query Browser”上执行该查询,则返回预期值。此外,其余查询正确执行。

有没有人知道这里会发生什么?

更新:

感谢@ICanHasCheezburger评论

解决了问题

2 个答案:

答案 0 :(得分:0)

试试这个

$sql_pay = "SELECT * FROM transaccion_cobro WHERE codigo='A2131231' AND idEstadoTransaccion=2";
$query_pay=mysql_query($sql_pay,$db);
if ( $query_pay ) {
    $num_pay = mysql_num_rows($query_pay);
} else {
    echo "Query Failed: " . mysql_error($db);
}

警告

  

自PHP 5.5.0起,此扩展程序已弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展。另请参阅MySQL:选择API指南和相关的常见问题解答以获取更多信息。该功能的替代方案包括:

看看这个Why shouldn't I use mysql_* functions in PHP?

答案 1 :(得分:-2)

$query_pay=mysql_query($sql_pay,$db);制作$query_pay=mysqli_query($db, $sql_pay);$num_pay = mysql_num_rows($query_pay);将其设为$num_pay = mysqli_num_rows($query_pay);

然后它应该工作,因为mysqli_query必须采用$ db或连接参数,对于mysql_query它是可选的。