Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中删除具有复合(多列)主键的记录_Php_Mysql_Sql_Pdo_Httprequest - Fatal编程技术网

如何在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代码

<?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”。我在网上的某个地方找到了它,但我忘了链接。 无论如何,这将结果限制为一行。正是我想要的