我正在尝试更新sql表中的记录。 我已经按照教程得到了应有的一切 但当我检查记录是否已更新时,不是 我认为这行代码存在问题,即整个更新页面。
<td>
<input name="first" type="text" id="first" value="<? echo $rows['first']; ?>" size="22">
</td>
根据要求提供更多数据:
$sql="SELECT * FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<table>
<tr>
<form name="form1" method="post" action="update_ac.php">
<tr>
<td> </td>
<td colspan="3"><strong>Update data in mysql</strong> </td>
</tr>
<tr>
<td><strong>First Name</strong></td>
<td><strong>Lastname</strong></td>
<td><strong>Address</strong></td>
<td><strong>Email</strong></td>
<td><strong>Username</strong></td>
<td><strong>Password</strong></td>
</tr>
<tr>
<td>
<input name="first" type="text" id="first" value="<? echo $rows['first']; ?>" size="22">
</td>
<td>
<input name="last" type="text" id="last" value="<? echo $rows['last']; ?>" size="30">
</td>
<td>
<input name="address" type="text" id="address" value="<? echo $rows['address']; ?>" size="40">
</td>
<td>
<input name="email" type="text" id="email" value="<? echo $rows['email']; ?>" size="30">
</td>
<td>
<input name="myusername" type="text" id="myusername" value="<? echo $rows['myusername']; ?>" size="30">
</td>
<td>
<input name="mypassword" type="text" id="mypassword" value="<? echo $rows['mypassword']; ?>" size="20">
</td>
</tr>
<tr>
<td> </td>
<td>
<input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>">
</td>
<td align="center">
<input type="submit" name="Submit" value="Submit">
如果结果在表格中返回,则单击以编辑条目 并且正在进入此页面,其中字段预先填充了数据 然后你应该进行编辑和更新
当我更新字段时,似乎它没有进行改变
任何帮助表示感谢,如果我没有正确解释对不起那些人
更新代码
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// update data in mysql database
$sql="UPDATE $tbl_name SET last='$last', first='$first', address='$address', email='$email', myusername='$myusername', mypassword='$mypassword' WHERE id='$id'";
$result=mysql_query($sql);
// if successfully updated.
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='list_records.php'>View result</a>";
}
else {
echo "ERROR";
}
?>
答案 0 :(得分:0)
您正在进行查询:
$sql="UPDATE $tbl_name SET last='$last', first='$first', address='$address', email='$email', myusername='$myusername', mypassword='$mypassword' WHERE id='$id'";
在该代码执行的范围内,您传递的变量不存在。我猜你想把它们从$ _POST数组中拉出来。
我应该提一下,这是一个非常糟糕的主意(http://en.wikipedia.org/wiki/SQL_injection)。请考虑使用PDO和预备语句。
$db = new PDO("mssql:host=$host;dbname=$tbl_name, $user, $pass");
$stmt = $db->prepare("UPDATE $tbl_name SET last=:last, first=:first, address=:address, email=:email, myusername=:myusername, mypassword=:mypassword WHERE id=:id");
$stmt->bindParam(":last", $last);
$stmt->bindParam(":first", $first);
依此类推......直到
$stmt->execute();
在此处阅读有关PDO的更多信息:http://php.net/manual/en/book.pdo.php
或教程:http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html