我有以下代码更新表。我希望只有在更新表单的所有字段都填充了值而不是空时才继续更新。
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$newphone = mysqli_real_escape_string($con, $_POST['newphone']);
$newemail = mysqli_real_escape_string($con, $_POST['newemail']);
$sql="UPDATE users SET PhoneNumber='$newphone', email='$newemail' WHERE name='$_SESSION[user]'";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "Status info have been updated";
print "</h2><br><a href='index.php'>Return to Main Menu</a><br>";
mysqli_close($con);
?>
别介意mysql代码。之后我会把它改成mysqli。
答案 0 :(得分:1)
您的查询不会更新任何内容 请尝试以下代码:
$user = $_SESSION['user'];
$sql="UPDATE users SET PhoneNumber='$newphone', email='$newemail' WHERE name='$user'";
以检查更新记录的数量
mysqli_affected_rows($con);
答案 1 :(得分:0)
检查它们是否存在。您需要在后端和前端检查这一点 这是在后端:
if($_POST['newemail'] && $_POST['newphone'] && $_SESSION['user']) {
//run sql update
}
前端:
var email = document.getElementById("newemail");
var phone = document.getElementById("phone");
if(phone.value && email.value) {
//run submission
}