2014-02-18 82 views
0

我对我的php代码有很多sql查询,除了这个之外,它们都工作得很好。PHP和MySQL:简单查询失败

$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查询浏览器”上执行该查询,它将返回期望值。此外,其余的查询都正确执行。

有没有人有任何想法在这里会发生什么?

UPDATE:

问题解决了由于@ICanHasCheezburger评论

+2

'回声mysql_error();'查询执行后。 –

+0

并且不要使用mysql_query(已弃用),了解PDO。 – Valdas

+0

'mysql_query($ sql_pay,$ db)或死(mysql_error());'把这个代码显示错误以便修复.... –

回答

-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它是可选的。

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指南和相关FAQ以获取更多信息。替代该功能包括:

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