我的要求是当用户在前端的文本框内键入字母时,它将自动从数据库中搜索并给出相应的结果。我写了一些查询,但它给了我以下错误。
错误:#1064 - 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本对应的手册,了解在"%P%"附近使用的正确语法按member_id第 1 行的 DESC 限制 0, 30' 订购
我的代码如下。
$searchKey=$_GET['searchKey'];
$keyword = '%'.$searchKey.'%';
$sql =mysqli_query($connect,"SELECT * FROM db_restaurant_basic WHERE rest_name LIKE (:keyword) ORDER BY member_id DESC ");
我的第一个搜索关键字是p
。
你想要
$sql =mysqli_query($connect,"SELECT * FROM db_restaurant_basic WHERE rest_name LIKE '$keyword' ORDER BY member_id DESC ");
或者你也可以做
$sql =mysqli_query($connect,"SELECT * FROM db_restaurant_basic WHERE rest_name LIKE '" . $keyword . "' ORDER BY member_id DESC ");
(:keyword) 不会将关键字的变量拉入 SQL 语法中,并且 (:keyword) 也不是有效的 mysql
另一种方法,
$sql =mysqli_query($connect,"SELECT * FROM db_restaurant_basic WHERE rest_name LIKE '".$keyword."' ORDER BY member_id DESC ");
执行 SQL 查询时,最好在相关位置的双引号内使用单引号。有时您还需要为表名加上单引号。喜欢这个
$sql =mysqli_query($connect,"SELECT * FROM `db_restaurant_basic` WHERE rest_name LIKE '".$keyword."' ORDER BY member_id DESC ");