PHP Mysql Select 用 BETWEEN 查询

PHP Mysql Select query with 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 注入)持开放态度 - 使用 PDO 和准备好的语句将消除这种威胁。关于使用 PHP PDO here.

有一个很好的教程