使用以下代码:
if (isset($_POST['delete']) && isset($_POST['id']))
{
$first = get_post('first');
$query = "DELETE FROM user_master WHERE id='$id'";
if(!mysql_query($query, $db_server))
echo "DELETE failed: $query<br />" .
mysql_error() . "<br /><br />";
}
$query="SELECT * FROM user_master";
$result= mysql_query($query);
if(!result) die ("Database access failed: " . mysql_error());
$rows = mysql_num_rows($result);
for ($j=0 ; $j<$rows ; ++$j)
{
$row = mysql_fetch_row($result);
echo <<<_END
<pre>
ID $row[0]
First $row[1]
Last $row[2]
Email $row[3]
User $row[4]
</pre>
<form action="willingLog.html" method="post">
<input type="hidden" name="delete" value="yes" />
<input type="hidden" name="id" value="$row[0]" />
<input type="submit" value="DELETE RECORD" /></form>
_END;
我无法从表中删除记录。
表格中的所有记录都打印在屏幕上,包括“删除记录”按钮。然而,当我按下按钮时,没有任何反应。我检查了 phpmyadmin 上的实际表,该表也没有受到影响。
我正在从一本书中提取这些内容,所以我不明白为什么它不起作用。
最佳答案
我没有看到你在哪里设置了 $id
变量。
if (isset($_POST['delete']) && isset($_POST['id']))
{
//$first = get_post('first'); #not sure what this does
$id = sanitize($_POST['id'], 'int'); //protect from sql injection
$query = "DELETE FROM user_master WHERE id=$id";
if(!mysql_query($query, $db_server))
echo "DELETE failed: $query<br />" .
mysql_error() . "<br /><br />";
}
请务必清理通过网络发送的所有数据,即 $_POST
。此外,如果 id
是数字类型,请不要将值括在引号中,否则 mysql 会将其解释为字符串。
关于php - 删除行mysql php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11212224/