Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql中包含dots扩展的Where子句_Php_Mysql_Sql_Mysql Error 1064 - Fatal编程技术网

Php mysql中包含dots扩展的Where子句

Php mysql中包含dots扩展的Where子句,php,mysql,sql,mysql-error-1064,Php,Mysql,Sql,Mysql Error 1064,我有一个问题,就是从数据库中选择值。我有这样一个where子句: $query = 'SELECT * FROM liquid WHERE Id = '.$id.' AND ( picone = tiger-1477927129.jpg OR pictwo = tiger-1477927129.jpg OR picthree =

我有一个问题,就是从数据库中选择值。我有这样一个where子句:

$query = 'SELECT * FROM liquid 
          WHERE Id = '.$id.' 
          AND (
                    picone = tiger-1477927129.jpg OR 
                    pictwo = tiger-1477927129.jpg 
                    OR picthree = tiger-1477927129.jpg 
                    ' . 'picfour = tiger-1477927129.jpg 
                    OR picfive = tiger-1477927129.jpg
                    OR picsix = tiger-1477927129.jpg
          )';
问题是文件扩展名前面有点,所以sql不会执行这个操作。你知道我怎么解决这个问题吗

谢谢
Lee

在值周围使用引号,即
image='image.jpg'
,您需要在PHP中转义字符串的引号

 $query = 'SELECT * FROM liquid WHERE
    Id = '.$id.'
    AND (
        picone = \'tiger-1477927129.jpg\'
        OR pictwo = \'tiger-1477927129.jpg\'
        OR picthree = \'tiger-1477927129.jpg\'
        OR picfour = \'tiger-1477927129.jpg\'
        OR picfive = \'tiger-1477927129.jpg\'
        OR picsix = \'tiger-1477927129.jpg\'
    )
';

看起来糟透了。你知道MySQL需要字符串常量的(单)引号吗?你需要学习基本的SQL语法。。。如果你认为这些点是个问题,想象一下那些
-
导致了什么…可以用双引号封装,然后可以删除串联和转义。谢谢大家。:)