有几层您可能会遇到问题:数据库连接、查询或您发送的数据。
此外,您没有过滤 " 和 ' 标记,因此您可能会遇到麻烦,并且您不能确保您的 id 是一个数字,因此您的 sql 也可能在那里失败。
但是,您可以通过对代码进行一些调整来解决这个问题......您可以在代码中插入一些诊断信息,以查看 mysql 报告错误的内容,并更好地了解如何修复它。
注意 [一般推荐][1] 使用 mysqli 扩展而不是 mysql 扩展,但不管怎样,这里是您当前使用的扩展的示例代码
希望这可以帮助!
<?php
if ( isset($_GET['deletecat'])) {
#dbh -> database resource.
$dbh = mysql_connect()
#mysql_connect returns false if it fails. capture error and echo to output.
if (!$dbh) {
die("Could not connect to database server: ".mysql_error()."\n");
#if using mysqli use mysql_connect_error() instead
}
#never trust input. use an escape function.
$id_to_delete = mysql_real_escape_string($_GET['deletecat'],$dbh);
#force $id_to_delete to be treated as a number, or make it safer in your sql.
#i used the latter method below.
$sql = "DELETE FROM `category` WHERE `Category_id` = '$id_to_delete' LIMIT 1");
#mysql_query returns false on failure
$result = mysql_query($sql,$dbh);
#on failure catch the error and display the exact contents of 'deletecat' in a web-friendly way.
if (!$result) {
$error=mysql_error($dbh);
die ("Error: Could not delete '"
.htmlentities(print_r($_GET['deletecat'],true)).". Error: $error\n"
);
}
#if we did not trigger die() above we are ok.
header('location: category.php');
exit();
}
?>
:
[1]:见警告http://php.net/manual/en/function.mysql-connect.php