-1

我有这个查询:

$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变量,它具有正确的值。第一个查询的错误在哪里?

4

3 回答 3

1

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

- 编辑 -

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

于 2013-03-19T23:13:11.700 回答
1

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

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

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

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

于 2013-03-19T23:38:28.257 回答
-2

您尚未将变量与字符串连接起来。

将您的代码更改为:

$queryfile="UPDATE Glasovi SET Fotografija=' . $content . ', MD5Slike=' . $checksum . ' WHERE Email =' . $email . '"; 
于 2013-03-19T23:15:15.107 回答