PHP更新MYSQL表单不起作用


PHP update MYSQL Form not working

我试图编辑姓氏(lname),但不起作用,

我得到这个错误:

错误:无法执行UPDATE表名SET fname=",lname=''其中fname=。您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册在第1行"附近使用的语法

<?php
$link = mysqli_connect("IP","DB","PASS (hiden ofc)", "DBN");
// Check connection
if($link === false){
    die("ERROR: Could not connect. " . mysqli_connect_error());
}
// Attempt update query execution
$sql = "UPDATE tablename SET fname = '$nfname', lname = '$nlname' WHERE fname = $fname";
if(mysqli_query($link, $sql)){
    echo "Records were updated successfully.";
} else {
    echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
// Close connection
mysqli_close($link);
?>

---HTML代码--

<html>
<body>
<h1>Test editing </h1>
<form action="edit.php" method="post">
OrginalFirstname: <input type="text" name="fname" /><br><br>
Lastname: <input type="text" name="lname" /><br><br>
NewFirstname: <input type="text" name="nfname" /><br><br>
 
<input type="submit" />
</form>
</body>
</html>

您忘记在查询的最后部分加撇号:

$sql = "UPDATE tablename SET fname = '$nfname', lname = '$nlname' WHERE fname = '$fname'";

这应该行得通。

请确保使用mysqli_real_escape_string转义了所有变量。如果其中一个变量具有非转义撇号,则查询将再次失败。

如果问题中的PHP代码是整个代码,那么您没有从$_POST[]中获得值。

您可以在代码开始时使用extract($_POST);将值获取到变量中。