【发布时间】:2016-03-18 22:53:00
【问题描述】:
我已经看这个有一段时间了,我正在做的只是用 mysql 学习 PHP,之前没有任何编程经验,所以请善待。我需要从表中删除整行。该表位于list.php 内,并且有一个删除按钮重定向到delete.php。但它所做的一切都是将我重定向到一个空白页面,其 url 类似于 "delete.php?id=4",具体取决于行 ID,这似乎是正确的。
这是connect.php:
<?php
$server = "localhost";
$db_user = "root";
$db_pass = "";
$db_name = "school";
$db_conn = mysqli_connect($server, $db_user, $db_pass, $db_name);
$connect_error = 'Sorry, we are experiencing connection problems';
mysql_connect('localhost', 'root', '') or die($connect_error);
mysql_select_db('school') or die($connect_error);
?>
这是delete.php:
<?php
if(isset($_GET['ID'])){
$courseID = $_GET['ID'];
$sql_delete = "DELETE FROM Courses WHERE ID = $courseID";
print ($sql_delete);
$result = mysqli_query($db_conn,$sql_delete);
if($result) {
echo "Congratulations. You have deleted this course succesfully.";
header('location:list.php');
} else {
echo "Error";
error_reporting(E_ALL ^ E_DEPRECATED);
}
}
?>
注意“print ($sql_delete);”,它也不会打印任何内容。我能想到的只是我使用$_GET 询问ID 的方式有问题,但我无法理解它。当我跑步时
"DELETE FROM Courses WHERE ID = 4;"
在 xampp 的 mysql 模块中,它可以工作。嗯……嗯。
好的,我补充一下: 这实际上是我在 list.php 中的删除按钮,它为我提供了一个基于表行号、基于课程 ID 的 URL。
<?php echo "<td><a href=\"delete.php?id=$row[ID]\">Delete</a>";?>
【问题讨论】:
-
$_GET['ID']必须是$_GET['id'] -
嗨,保罗,感谢您的回答。它不再将我重定向到空白页面,这意味着标题现在可以工作,但它也不会删除该行。 :-/
-
您是否使用存在的 ID 进行测试?含义:如果您已经删除了 ID 为 4 的行,您是否使用 ID 4 进行测试?
-
你还需要避免sql注入。
$courseID = mysqli_real_escape_string($_GET['id']); -
timgavin,你错过了问题的细节。我只是在 SQL 命令行中手动插入了一个数字,以检查查询是否有问题。我需要通过使代码自动从 URL 读取 ID 来使其与 $_GET 一起自动工作。正如我已经提到的,URL 重定向可以正常工作。
标签: php html mysql html-table