这是我到目前为止所做的:
$checkbonus = mysql_query("Select theurl from `vaultpromo` where (accid=0 or accid=$acctype) and (shownum=$clickstoday or (showtype=1 and ($clickstoday%shownum=0))) AND
(startdate<$today AND enddate>$daytime) OR (startdate=$today AND starttime<=$currenttime AND enddate>$daytime) limit 1");
if (mysql_num_rows($checkbonus) > 0) {
DO SOMETHING
}
但是我收到了这个错误:
Warning: mysql_num_rows() expects parameter 1 to be resource,
boolean given in...
非常感谢任何帮助!
一切正常,直到这一部分:
(startdate<$today AND enddate>$daytime) OR (startdate=$today AND starttime<=$currenttime AND enddate>$daytime) limit 1");
我已经检查过它正在检查表中的正确行,我在查询之前定义了$ today,$ daytime和$ currenttime:
$today=date("Y-m-d");
$currenttime=date("H:i:s");
$daytime=date("Y-m-d H:i:s");
答案 0 :(得分:2)
原因是您的查询无效。
所以它返回False
,一个布尔值,而不是结果集。
mysql_num_rows()
不期望布尔值而是结果集,因此它会发出警告。
检查所有PHP变量是否已被估值或其中某些变量是否为空。
编辑,例如,如果$acctype
为空,则查询变为
Select theurl from `vaultpromo` where (accid=0 or accid=) and (...
^^^^^^
请确保每个变量都有一个值,检查以避免出现异常情况......
答案 1 :(得分:0)
你应该这样做:
$checkbonus = mysql_query("Select theurl from `vaultpromo` where (accid=0 or
accid=$acctype) and (shownum=$clickstoday or (showtype=1 and
($clickstoday%shownum=0))) AND
(startdate<$today AND enddate>$daytime) OR (startdate=$today AND
starttime<=$currenttime AND enddate>$daytime) limit 1");
//Check resultset variable if it contain data or not.
if($checkBonus)
{
if (mysql_num_rows($checkbonus) > 0) {
//DO SOMETHING
}
}
else
{
die('Invalid query: ' . mysql_error());
}
$checkbonus = mysql_query("Select theurl from `vaultpromo` where (accid=0 or
accid=$acctype) and (shownum=$clickstoday or (showtype=1 and
($clickstoday%shownum=0))) AND
(startdate<$today AND enddate>$daytime) OR (startdate=$today AND
starttime<=$currenttime AND enddate>$daytime) limit 1");
//Check resultset variable if it contain data or not.
if($checkBonus)
{
if (mysql_num_rows($checkbonus) > 0) {
//DO SOMETHING
}
}
else
{
die('Invalid query: ' . mysql_error());
}
您收到此错误“警告:mysql_num_rows()期望参数1为资源,在...中给出布尔值”,因为变量不包含数据库资源且返回False,因为您的查询确实成功运行。
您的查询很可能包含错误,因为其中一个或多个变量为空或未转义,从而导致查询出错。
顺便说一句,我强烈建议您考虑使用PDO库。