mysql_num_rows()希望参数1是资源,php错误

mysql_num_rows()希望参数1是资源,php错误,php,Php,我在访问我的站点时遇到此错误。我在三个不同的服务器上使用了相同的文件,包括我的本地服务器,并且运行良好。有人能发光吗 $stringIp = $_SERVER['REMOTE_ADDR']; $intIp = ip2long($stringIp); $inDB = @mysql_query("SELECT 1 FROM av_whoIsOnline WHERE ip=".$intIp); if(!mysql_num_rows($inDB)) //CODE IN QUESTION &

我在访问我的站点时遇到此错误。我在三个不同的服务器上使用了相同的文件,包括我的本地服务器,并且运行良好。有人能发光吗

    $stringIp = $_SERVER['REMOTE_ADDR'];
$intIp = ip2long($stringIp);


$inDB = @mysql_query("SELECT 1 FROM av_whoIsOnline WHERE ip=".$intIp);

if(!mysql_num_rows($inDB)) //CODE IN QUESTION <---------
{


if($_COOKIE['geoData'])
{

list($city,$countryName,$countryAbbrev) =     explode('|',mysql_real_escape_string(strip_tags($_COOKIE['geoData'])));
}
else
{


$xml = file_get_contents('http://api.hostip.info/?ip='.$stringIp);

$city = get_tag('gml:name',$xml);
$city = $city[1];

$countryName = get_tag('countryName',$xml);
$countryName = $countryName[0];

$countryAbbrev = get_tag('countryAbbrev',$xml);
$countryAbbrev = $countryAbbrev[0];


setcookie('geoData',$city.'|'.$countryName.'|'.$countryAbbrev, time()+60*60*24*30,'/');
}

$countryName = str_replace('(Unknown Country?)','UNKNOWN',$countryName);

if (!$countryName)
{
$countryName='UNKNOWN';
$countryAbbrev='XX';
$city='(Unknown City?)';
}
$stringIp=$\u服务器['REMOTE\u ADDR'];
$intIp=ip2long($stringIp);
$inDB=@mysql\u query(“从av\u whoIsOnline中选择1,其中ip=”.$intIp);

如果(!mysql\u num\u rows($inDB))//有问题的代码在@mysql\u query之前去掉@符号。这显然抑制了错误。如果您确实收到错误,
$inDB
将不是有效的资源,因此您将收到收到的错误。你的问题很有可能是以前的问题


还请注意,
mysql
库已经被弃用,取而代之的是
mysqli
PDO
。考虑更改代码,使用一个较新的库,因为它们更安全。

< p>它正在工作。谢谢你的回复

这是我不久前从网上抓到的一个在线脚本。我使用相同的脚本更改了主机,并出现此错误。上传数据库后,我删除了“av_whoIsOnline”中的所有条目。然后发生了错误。重新插入条目,错误消失


我的数据库连接位于另一个文件中。

mysql\u connect('localhost','mysql\u user','mysql\u password')?删除@符号并重新运行脚本。您很可能在尝试访问数据库时出错。
中选择1?为什么会有人给出这样的名字?错误报告在哪一行?顺便问一下,数据库连接在哪里