WHERE查询无法正常运行

时间:2013-03-19 23:11:23

标签: php mysql

我有这个问题:

$queryfile = "UPDATE Glasovi
             SET Fotografija='$content',
             MD5Slike='$checksum'
             WHERE Email ='$email'"; 

它不会更新数据库。

当我直接在WHERE子句中写电子邮件时,它可以工作:

$queryfile = "UPDATE Glasovi
              SET Fotografija='$content',
              MD5Slike='$checksum'
              WHERE Email ='user.user@mail.com'"; 

我试图回显$email变量并且它具有正确的值。 第一个查询中的错误在哪里?

3 个答案:

答案 0 :(得分:1)

你的请求没问题,所以你应该在php中检查你的变量,使用var_dump($email)

- 编辑 -

您的请求似乎不安全,您应该使用PDO语句来保护它免受SQL注入

答案 1 :(得分:1)

您的查询看起来是正确的。我能看到的唯一问题是其中一个变量包含单引号,这可能会导致您的错误。

尝试使用addslashes转义变量中的任何单引号

$queryfile = "UPDATE Glasovi 
SET Fotografija ='".addslashes($content)."', 
MD5Slike ='".addslashes($checksum)."' 
WHERE Email ='".addslashes($email)."'"; 

这样做也有助于通过单引号防止SQL注入

答案 2 :(得分:-2)

您没有使用字符串连接变量。

将您的代码更改为:

$queryfile="UPDATE Glasovi SET Fotografija=' . $content . ', MD5Slike=' . $checksum . ' WHERE Email =' . $email . '";