mysql查询(如)和php的问题

时间:2010-09-04 11:28:33

标签: php mysql mysql-error-1064

我正在尝试使用类似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我得到这个错误?

谢谢!

3 个答案:

答案 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+"%\"";