php - 将php变量放入mysql查询

标签 php mysql

如果您不想获得我正在尝试做的事情的完整摘要,请跳至(问题从这里开始)

我在设置我的新网站时遇到了一个问题。

我基本上想做的是将广告分配到特定国家/地区。因此,例如,如果您来自英国,您将看到我们在英国库存中的广告。

因此,我从 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/

相关文章:

php - SQL 用另一个表中的值填充一个表的字段

mysql - 如何列出数据库中某个字段的总计

php - 用于存储设置的 XML 或数据库表

php - 如何在 XAMPP 服务器上使用 php 将 MySQL 数据库连接到 html 页面?

php - 如何使用php接收手机短信到服务器

php - MYSQL数据库如何修改时区?

mysql - 将 SQL 查询的结果限制为某一列的一个结果

php - 如何修复 SQLSTATE[HY000] [1049] 未知数据库

javascript - 无法从 $_POST 变量访问使用 JSON.stringify 序列化的表单数据

mysql - 基于映射计算