通过php删除数据库中的数据时出错

时间:2013-08-23 02:31:54

标签: php mysql

我试图通过php脚本从数据库中删除信息但是我收到了错误 输入员工ID时,应删除该ID。但是,它不会删除,我会收到错误。

<html>
<head>
    <title>Delete a Record from MySQL Database</title>
</head>
<body>

<?php
if (isset($_POST['delete'])) {
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = '';
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    if (!$conn) {
        die('Could not connect: ' . mysql_error());
    }

    $emp_id = $_POST['emp_id'];

    $sql = "DELETE employee " .
        "WHERE emp_id = $emp_id";

    mysql_select_db('test');
    $retval = mysql_query($sql, $conn);
    if (!$retval) {
        die('Could not delete data: ' . mysql_error());
    }
    echo "Deleted data successfully\n";
    mysql_close($conn);
} else { ?>
    <form method="post" action="<?php $_PHP_SELF ?>">
        <table width="400" border="0" cellspacing="1" cellpadding="2">
            <tr>
                <td width="100">Employee ID</td>
                <td><input name="emp_id" type="text" id="emp_id"></td>
            </tr>
            <tr>
                <td width="100"></td>
                <td></td>
            </tr>
            <tr>
                <td width="100"></td>
                <td>
                    <input name="delete" type="submit" id="delete"
                           value="Delete">
                </td>
            </tr>
        </table>
    </form>
<?php } ?>
</body>

我得到的错误是:

  

无法删除数据:SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第1行的“WHERE emp_id = 1”附近使用正确的语法

4 个答案:

答案 0 :(得分:1)

正确的语法在这里:http://dev.mysql.com/doc/refman/5.0/en/delete.html

你需要说从

删除
$sql = "DELETE **from** employee ".
   "WHERE emp_id = $emp_id" ;

答案 1 :(得分:0)

应该是

$sql = "DELETE from employee ".
       "WHERE emp_id = $emp_id" ;

答案 2 :(得分:0)

您的查询是DELETE EMPLOYEE

您需要的是DELETE FROM EMPLOYEE,如果表格结构正常,应该这样做。

答案 3 :(得分:0)

这只是语法错误!

看,您不想删除所有表员工,只需要一行emp_id = $ emp_id“

这就是为什么你需要说你想要从TABLE员工中删除所有行,其中emp_id = $ emp_id“!