我正在使用PHP在表中显示MySQL数据库中的内容。我认为它正在工作,但输出仍然是"错误"。我需要连续删除所有记录。
<?php
require_once ('config.inc.php');
$id=$_POST['id'];
$sql = "DELETE `subject_information` WHERE `id`='$id'";
$result = mysql_query($sql);
if ($result)
{
echo "Deleted Successfully";
}
else
{
echo "ERROR!";
mysql_close();
}
?>
您忘记了FROM
关键字。正确的语法是:
DELETE FROM table_name
WHERE some_column=some_value;
所以你的代码应该是这样的:
$sql = "DELETE FROM `subject_information` WHERE `id`='$id'";
您应该更改此行:
$sql = "DELETE `subject_information` WHERE `id`='$id'";
自
$sql = "DELETE FROM `subject_information` WHERE `id`='".$id."'";
首先,您应该输出从数据库返回的错误:
if ($result)
{
echo "Deleted Successfully";
}
else
{
echo mysql_error();
}
第二:mysql_xxxx函数将在将来的版本中从PHP中删除。您应该查看PDO以连接到数据库
更改查询的语法才能从表中删除行,使用以下语法
$sql ="从表名中删除,其中id
='$id'";
题外话,但请阅读 http://php.net/manual/security.database.sql-injection.php
这种类型的查询容易受到 SQL 注入的攻击,因为您不检查/引用$id。
作为提示,这些函数可能会帮助您:
- mysql_real_escape_string
- ctype_digit
- is_numeric