带有 BETWEEN 的 PHP Mysql Select 查询

标签 php mysql between

我正在尝试使用 between 来使用两个查询,但是当我添加 between 代码时它不起作用。这是在使用 BETWEEN 之前为我工作的代码。

$result = mysql_query("SELECT name , liking , id , address , description FROM locations WHERE liking LIKE '%{$likeArray[$newCount]}%'");

这是无效的 BETWEEN 代码。

$result = mysql_query("SELECT name , liking , id , address , description FROM locations WHERE ‘long’ BETWEEN ‘$Slong’ AND ‘$Blong’ AND lat BETWEEN ‘$Slat’ AND ‘$Blat’ AND liking LIKE '%{$likeArray[$newCount]}%'");

最佳答案

这里有一些问题。

首先,我会说,不要使用 mysql_* 函数,它们在 5.5+ 中被弃用并在 7.0 中被删除。您的替代方案是 mysqli_* 函数,或使用 PDO。我更喜欢 PDO,但我明白为什么使用 mysqli_* 会很方便,因为您可以对 mysql_ 进行文本搜索并替换为 mysqli_

现在,谈谈你的问题。您对所有内容都使用了反引号和前引号,而您应该使用反引号和单引号。列名应包含在反引号 (`) 中,文本应包含在单引号 (') 中,如下所示:

$result = mysqli_query(
    "SELECT name , liking , id , address , description FROM locations WHERE `long` BETWEEN '$Slong' AND '$Blong' AND `lat` BETWEEN '$Slat' AND '$Blat' AND `liking` LIKE '%{$likeArray[$newCount]}%'"
);

编辑:此外,您对 SQLi(SQL 注入(inject))持开放态度 - 使用 PDO 和准备好的语句将消除这种威胁。有一个关于使用 PHP PDO 的好教程 here .

关于带有 BETWEEN 的 PHP Mysql Select 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45627223/

相关文章:

PHP/MySQL 只更新第一行的宽度

mysql - 如何获取mysql中两个字符串值之间的行

sql - 查找电话号码是否存在于 2 列之间

javascript - 使用(PHP)从 Mysql 获取数据并使用 JSON 将其发送到 typescript/javascript

php - 如何合并两个不同长度的数组,同时删除一个数组的一部分?

c++ - sqlConnection->Open() 不起作用

MySQL 第 N 行汇总函数

mysql - 执行 mysql 命令的脚本无法与 cron 作业一起使用

php - or_where 在 codeigniter 模型中不起作用

php - 将文件夹中的所有 jpg 文件拉入 PHP 数组?