我有这样的查询:
$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
变量,它有正确的值。第一个查询中的错误在哪里?
您的查询看起来是正确的。我能看到的唯一问题是其中一个变量包含一个单引号,这可能会导致您的错误。
尝试使用addslashes转义变量
中的任何单引号$queryfile = "UPDATE Glasovi
SET Fotografija ='".addslashes($content)."',
MD5Slike ='".addslashes($checksum)."'
WHERE Email ='".addslashes($email)."'";
这样做也有助于防止SQL注入单引号
你的请求是好的,所以你应该检查你的变量在php中,使用var_dump($email)
—EDIT—
你的请求似乎不安全,你应该使用PDO语句来保护它从SQL注入
您没有将变量与字符串连接。
把你的代码改成:
$queryfile="UPDATE Glasovi SET Fotografija=' . $content . ', MD5Slike=' . $checksum . ' WHERE Email =' . $email . '";