如何删除PHP中的记录有复合(多列)主键(How to Delete a Record in php

2019-10-20 08:51发布

确定这里是要删除的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的东西的问题。 它也可能是一些关于$ _ POST和GET,请求事情。 我试图改变SQL语句,然后它会删除整个表。 改变的变量也不起作用。

我希望它在一个时间只能删除一条记录。 请人给我一些建议。

Answer 1:

1.要检查你的信息:

的var_dump $ POST,然后死去;

2.检查你的SQL:强制正确的值到您的增值经销商的$ id =“富”; $秒= '酒吧';

3.确保备言的作品,是什么? 真与所需值代替(S)

干杯斯特凡



Answer 2:

好的! 我终于找到了。 问题是与SQL语句。 我不得不添加其他条件来限制这一点。

它是这样的。

“删除部分,在那里为Actno = AND SectionNo = 1 LIMIT?”;

'LIMIT 1' 失踪了。 我发现它的地方,在网络,但我忘了链接。 无论如何这限制了结果一行。 正是我想要的。



文章来源: How to Delete a Record in php that has composite (multi-column) primary key