如何在php中删除具有复合(多列)主键的记录
好的,这是要删除的php代码如何在php中删除具有复合(多列)主键的记录,php,mysql,sql,pdo,httprequest,Php,Mysql,Sql,Pdo,Httprequest,好的,这是要删除的php代码 <?php require '../../AppData/database.php'; $id = 0; if ( !empty($_GET['ActNo'])) { $id = $_REQUEST['ActNo']; } $sec = 0; if ( !empty($_GET['SectionNo'])) { $sec = $_REQUEST['SectionNo']; } if ( !empty($_POST)) { // keep track p
<?php
require '../../AppData/database.php'; $id = 0;
if ( !empty($_GET['ActNo'])) {
$id = $_REQUEST['ActNo'];
}
$sec = 0;
if ( !empty($_GET['SectionNo'])) {
$sec = $_REQUEST['SectionNo'];
}
if ( !empty($_POST)) {
// keep track post values
$id = $_POST['ActNo'];
$sec = $_POST['SectionNo'];
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "DELETE FROM section WHERE ActNo = ? AND SectionNo = ?";
$q = $pdo->prepare($sql);
$q->execute(array($id, $sec));
Database::disconnect();
header("Location: index.php");
}
?>
问题是:
它不起作用。要么mysql语句不正确,要么它们可能与pdo内容有关。它也可能是关于$u POST和GET以及请求的东西。我试图更改sql语句,然后它将删除整个表。更改变量也不起作用
我希望它一次只删除一条记录。
请有人给我一些建议。1。
要查看您的帖子:
var_转储$POST,然后死亡
二,。
要检查SQL,请执行以下操作:
将正确的值强制输入变量
$id='foo';
$sec=‘bar’
三,。
确保准备好的声明有效,是吗?实际替换为所需的值
干杯,Stefan好的!
我终于找到了。
问题在于SQL语句。我不得不添加另一个条件来限制这一点
事情是这样的
“从ActNo=?和SectionNo=?限制1的章节中删除”
缺少“限制1”。我在网上的某个地方找到了它,但我忘了链接。
无论如何,这将结果限制为一行。正是我想要的