【发布时间】:2014-10-01 14:33:57
【问题描述】:
我无法从数据库中删除任何记录。我找不到任何错误。
我已经从另一个表中删除了一些记录,只是稍作更改,但在这里它不起作用。下面是应用删除查询的代码。表的名称是我要删除记录的地方,但这里没有发生。
deleteSupplier.php
<?php
mysql_connect("localhost","root","");
mysql_select_db("db_kiln");
$id1 = $_GET['id1'];
$query0 = "DELETE FROM tbl_supplier WHERE sup_id='$id1'";
if(mysql_query($query0)){
echo "<script>window.open('supplier_connect.php','_self')</script>";
}
else{
echo "Not deleted";
}
?>
这是我从数据库中获取数据并针对每条记录设置删除按钮的文件。当我单击按钮时,它不会删除记录并显示错误消息。我找不到任何错误,我认为此代码中存在逻辑错误。请帮忙。
supplier_connect.php
<?php
mysql_connect("localhost","root","");
mysql_select_db("db_kiln");
$query = "Select * from tbl_supplier";
$run = mysql_query($query);
echo "<table border='1'>
<tr>
<th>Supplier Id</th>
<th>Name</th>
<th>Contact Number</th>
<th>Quotation </th>
<th>Remove</th>
</tr>";
while($row = mysql_fetch_assoc($run)){
echo "<tr>";
echo "<td>" . $row['sup_id'] . "</td>";
echo "<td>" . $row['sup_name'] . "</td>";
echo "<td>" . $row['sup_contact'] . "</td>";
echo "<td>" .$row['sup_quotation']. "</th>";
echo '<td><a href="deleteSupplier.php?id1='.$row['sup_id'].'">Delete</a></td>';
echo "</tr>";
}
echo "</table>";
?>
【问题讨论】:
-
整个脚本都写了 SQL 注入。也请不要使用 mysql_* 函数、用户 mysqli_* 函数或 PDO
-
也许您不允许删除某些内容?您是否使用您的 root 帐户执行此操作?
-
我有数据库连接到它并从数据库中获取数据。deleteSupplier.php 中的 else 部分运行并显示错误消息“未删除”
-
mysql_*函数不再支持,它们是 officially deprecated,不再维护,将在 removed未来。您应该使用PDO 或MySQLi 更新您的代码,以确保您的项目在未来的功能。 -
您在数据库代码中的任何地方都绝对没有错误处理,只需假设没有任何事情会失败。你对sql injection attacks 敞开心扉。另外,删除查询只有在以某种方式失败时才会返回 false - 不删除任何内容都不是失败。删除 0 行的删除查询仍然成功,并将返回非假值