PHP和MySQL查询不起作用

时间:2014-07-08 19:37:11

标签: php mysql

我想在数据库中保存一张名为“ergasia”的图片名称。我已经创建了列名为name-surname-address-title_photo的表信息,我希望在此列中插入一个mysql查询图片的名称。图片保存在桌面上的文件夹中。这是我的查询:

    mysql_connect('localhost', 'root' ,'ana');
    $con=mysql_select_db('ergasia');
    $surname=$_SESSION['surname'];
    $name=$_SESSION['name'];
    $query= "UPDATE information SET title_photo='$_FILES["file"]["name"]' WHERE name='$name' AND lastname='$surname' ";
        if (!mysql_query($query)) {
  die('Error: ' . mysql_error());
}

我收到以下错误:

  

解析错误:语法错误,意外''',期待标识符   (T_STRING)或变量(T_VARIABLE)或数字(T_NUM_STRING)in   C:\ Users \ anastasia \ Desktop \ xampp2 \ htdocs \ ana \ forma \ save_file.php on   第20行

你对这个问题有什么看法吗?

提前致谢。

4 个答案:

答案 0 :(得分:4)

你有引用问题,在mysql中执行它的正确方法是:

$query=  sprintf("UPDATE information SET title_photo='%s' 
                  WHERE name='%s' AND lastname='%s'",
            mysql_real_escape_string($_FILES['file']['name']),
            mysql_real_escape_string($name)));
            mysql_real_escape_string($surname)));

...但它是一个弃用的API,如果可以,请升级到mysqli。

答案 1 :(得分:0)

使用以下命令更改查询行:

$query= "UPDATE information SET title_photo='".$_FILES["file"]["name"]."' WHERE name='$name' AND lastname='$surname' ";
                                             ^^                       ^^  

您必须将$_FILES["file"]["name"]与查询字符串正确连接。

Mysql扩展名为officially deprecated as of PHP v5.5.0。使用MysqliPDO

答案 2 :(得分:0)

PHP会看到你试图在"之后结束字符串。 ($_FILES["file)。您必须concatenate(结束字符串,添加变量的字符串值,然后继续字符串)不同的值。上面的答案都可行,所以选择一个并投入一些时间来理解连接。特别是当您经常使用字符串(如SQL查询)时,您可能会多次使用这种方式。

答案 3 :(得分:-1)

问题在于字符串查询。更改如下。

$query= "UPDATE information SET title_photo='".$_FILES["file"]["name"]."' WHERE name='".$name."' AND lastname='".$surname ."'";