如果您不想获得我正在尝试做的事情的完整摘要,请跳至(问题从这里开始)
我在设置我的新网站时遇到了一个问题。
我基本上想做的是将广告分配到特定国家/地区。因此,例如,如果您来自英国,您将看到我们在英国库存中的广告。
因此,我从 Google 收集了一些关于如何根据用户的 IP 检测用户所在国家/地区的数据。 我制作了一个函数,可以完美地做到这一点。
$ip_address= $_SERVER['REMOTE_ADDR'];
function ip_location($ip){
$parts = explode('.', $ip);
$numeric_ip = $parts[3] + (256 * $parts[2]) + (256 * 256 * $parts[1]) + (256 * 256 * 256 * $parts[0]);
$sql = "SELECT country FROM iptocountry WHERE lower_bound <= $numeric_ip AND upper_bound >= $numeric_ip LIMIT 1";
$result = mysql_query($sql);
$country = mysql_result($result, 0);
return $country;
}
$country = ip_location($ip_address);
echo $country; // Always echos the correct country
(问题从这里开始)
所以这个函数工作正常。创建此函数后,我创建了一个 MYSQL 查询,该查询使用该函数中的数据来选择要向用户展示的广告。
这就是问题开始的地方。
当我键入此查询时:
$sql = "SELECT * FROM `nuevo__htmlad` WHERE `country` = 'united kingdom' AND `active` = 1 ORDER BY RAND() LIMIT 1";
使用 country = 'united kingdom'
它工作正常但是当我输入 country = '$country'
没有任何效果,它从不显示广告。
任何人都可以帮助我理解为什么当我将 PHP 变量放入其中时此查询不起作用。这实际上是第一次如此简单的事情让我如此困扰。
如有任何帮助,我们将不胜感激。
最佳答案
我通过使用 PDO 驱动程序来处理数据库来避免这种情况。这使我可以使用参数并可以轻松地重用 sql 语句。查看this article获取更多信息。
关于php - 将php变量放入mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11691869/