我有一个庞大的数据库,包含超过200,000行,我面临的问题是,每当我在loaclhost中运行时,它都会显示准确的结果,但是无论何时我在服务器中,它都会丢失一些结果。
问题如下所示。
每当我在本地主机中输入ip时,它就会显示输出
但是每当我在服务器上运行相同的IP时,它都不会显示结果
我服务器的链接是http://ip2country.1eko.com/index.php
查询代码如下所示。
<?php
if(isset($_REQUEST['submit']))
{
$ip = ip2long($_REQUEST['ip']);
$res = mysql_query("SELECT * from ip2country WHERE $ip BETWEEN begin_long_ip AND end_long_ip") or die(mysql_error());
$row = mysql_fetch_array($res);
echo "<h1>Country Name : ".$row['country_name']."</h1><br />";
echo "<h1>Country Code : ".$row['country_code']."</h1><br />";
$res1 = mysql_query("SELECT COUNT(*) AS Total FROM ip2country") or die(mysql_error());
$row1 = mysql_fetch_array($res1);
echo $row1['Total'];
}
?>
任何帮助将不胜感激...
最佳答案
您没有得到我的评论,所以这里是解释。
在您的页面上不难看出讨厌的错误:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BETWEEN begin_long_ip AND end_long_ip' at line 1
那是因为您的查询是错误的:SELECT * from ip2country WHERE $ip BETWEEN begin_long_ip AND end_long_ip
您应该像这样更改它:SELECT * from ip2country WHERE $ip > begin_long_ip AND $ip < end_long_ip
PS。请注意,mysql_ *函数已被弃用,您不应再使用它们。请尝试使用Mysqli / PDO。