我试图编辑姓氏(lname),但它不起作用,
我收到此错误:
错误:无法执行UPDATE tablename SET fname ='', lname =''WHERE 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 CODE ---
<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>
答案 0 :(得分:4)
您忘记在查询的最后部分放置撇号:
$sql = "UPDATE tablename SET fname = '$nfname', lname = '$nlname' WHERE fname = '$fname'";
这应该有用。
确保使用mysqli_real_escape_string
转义所有变量。如果其中一个变量具有非转义撇号,则查询将再次失败。
如果您问题中的PHP代码是整个代码,那么您无法从$_POST[]
获取值。
您可以在代码开始时使用extract($_POST);
将值输入变量。