[英]Delete row mysql php
使用以下代碼:
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;
我無法從表格中刪除記錄。
表格中的所有記錄都將打印在屏幕上,包括“ DELETE RECORD”按鈕。 但是,當我按下按鈕時,什么也沒有發生。 我已經檢查了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會將其解釋為字符串。
$ id = 2;
$query = mysql_query("DELETE FROM table_name WHERE id="'.$id.'"");
注意:刪除查詢ID很重要,否則默認會刪除整行。
$ query = mysql_query(“從表名刪除,其中id = 1”);
$query = "DELETE FROM user_master WHERE id='$id'";
這可能應該是:
$query = "DELETE FROM user_master WHERE id='" . $_POST['id'] "'";
但是,請對SQL注入進行一些研究,以及為什么永遠不要將信息直接從用戶傳遞到數據庫。
代碼應為:
$id = get_post('id');
在第一個“ if”語句下大括號的第一行中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.