如果我上传了一组字母,这个php脚本会因错误| 5而死,但如果我使用$ phpSign变量的数字,那么一切都很完美。
<?php
$device = $_POST["device"];
$randomChar = $_POST["randomChar"];
$phpSign = $_POST["Sig"];
if($mysql->query("UPDATE premium SET signup = $phpSign WHERE (id, randomChar) = ('$device', '$randomChar')")) die("success");
else die("error|5");
?>
为什么可以;我用脚本上传名字,为什么它只适用于数字?如何将名称上传到我的数据库?
答案 0 :(得分:2)
你需要$phpSign
左右的引号,因为它是一个字符,而不是一个数字。
if($mysql->query("UPDATE premium SET signup = '$phpSign' WHERE (id, randomChar) = ('$device', '$randomChar')")) {
die("success");
} else {
die("error|5:" . $mysqli->error);
}
正如我所示,当查询失败时,您应该显示MySQL错误消息,而不仅仅是一般错误消息。这样你就会知道它失败的原因。
P.S。您应该学会使用预处理语句而不是替换变量,然后您不必担心引用,以及避免SQL注入问题。