我有一个庞大的数据库,包含超过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。

10-07 23:00