我正在尝试使用类似sql的语句但不幸的是每次我使用查询时都会出错。在php文件中我有:
$b = "SELECT Nombre, Link, Img_Pre, Precio, Descripcion, ID, Categoria, Subcategoria
FROM Productos WHERE Nombre LIKE \"%$a%\"";
但是我收到了这个错误:
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行的“\%%A%\”'附近使用
如果我在phpmyadmin上尝试相同的语句,我没有任何错误。为什么用php我得到这个错误?
谢谢!
答案 0 :(得分:4)
在LIKE
字符串中使用单引号(我相信phpMyAdmin会在运行查询之前将其神奇地转换为单引号):
$b = "SELECT Nombre, Link, Img_Pre, Precio, Descripcion, ID, Categoria, Subcategoria FROM Productos WHERE Nombre LIKE '%$a%'";
确保您已使用$a
转义mysql_real_escape_string()
,因为它可能会通过引入未转义的引号来破坏您的查询!
答案 1 :(得分:0)
尝试:
$b = "SELECT Nombre, Link, Img_Pre, Precio, Descripcion, ID, Categoria, Subcategoria FROM Productos WHERE Nombre LIKE '%$a%'";
如果不使用撇号作为字符串分隔符
,某些SQL查询将会出现问题答案 2 :(得分:-1)
$b = "SELECT Nombre, Link, Img_Pre, Precio, Descripcion, ID, Categoria, Subcategoria
FROM Productos WHERE Nombre LIKE \"%"+$a+"%\"";