>我有这个SQL代码
$sql = 'SELECT * FROM images WHERE
(artist LIKE "'.$artistsearch.'%")
AND (code LIKE "'.$idsearch.'%")
AND (name LIKE "'.$namesearch.'%")
AND (price BETWEEN '.$minprice.' AND '.$maxprice.')';
我收到错误
无效查询:SQL 语法有误;请查看手册 与您的MySQL服务器版本相对应,语法正确 在第 5 行的"AND )"附近使用
但是,运行代码
SELECT *
FROM images WHERE artist LIKE '%'
AND code LIKE '%'
AND name LIKE '%'
AND price BETWEEN 0 AND 1000
在 MySQL 中工作正常。
我尝试切换'和",但它不起作用。
谁能帮我找出问题所在?
错误说明了最后一行中问题的所有
内容AND (price BETWEEN '.$minprice.' AND '.$maxprice.')';
如您所见,"AND $maxprice )"部分是问题所在。检查$maxprice并确保它不为空
if (empty($maxprice)) {
$maxprice = "some_default_number";
}
$sql = 'SELECT * FROM images WHERE
(artist LIKE "'.$artistsearch.'%")
AND (code LIKE "'.$idsearch.'%")
AND (name LIKE "'.$namesearch.'%")
AND (price BETWEEN '.$minprice.' AND '.$maxprice.')';