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.
有一个很好的教程
我正在尝试使用 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.
有一个很好的教程