php - 删除行mysql php

标签 php mysql sql-delete

使用以下代码:

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 会将其解释为字符串。

最后,研究使用 MySqliPDO ,因为 MySql API 已被弃用。

关于php - 删除行mysql php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11212224/

相关文章:

PHP/Ubuntu-QxcbConnection : Could not connect to display aborted

mysql - 为图像托管网站设计数据库的最佳方法?

MySQL安装问题 mysql-5.7.18-linux-glibc2.5-x86_64.tar

MySQL删除语句优化

php - laravel删除父行数据出错

php - JqG​​rid删除功能

java - 从句子中提取短语的算法

php - 如何将 MySQL 中的 id 添加到 session cookie

php - PHP如何获取本周、当月的成绩数据?

php - 将闪存连接到 MYSQL