PHP更新MYSQL表单无法正常工作

时间:2015-12-25 22:14:32

标签: php mysql

我试图编辑姓氏(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>

1 个答案:

答案 0 :(得分:4)

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

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

这应该有用。

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

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

您可以在代码开始时使用extract($_POST);将值输入变量。