2014-06-25 39 views
0

確定這裏是爲刪除如何刪除在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"); 

} 

?> 

問題的PHP代碼: 它不工作。 mysql語句不正確,或者它們可能是pdo的問題。它也可能是關於$ _POST和GET和REQUEST的東西。我試圖改變sql語句,然後它會刪除整個表。更改變量也不起作用。

我希望它一次只刪除一條記錄。 請有人給我一些建議。

回答

1

1. 檢查你的信息:

的var_dump $ POST,然後死去;

2. 檢查您的SQL: 強制正確的值進入您的變量 $ id ='foo'; $ sec ='bar';

3. 確保準備好的聲明有效,是嗎?真的換成所需的值

乾杯斯特凡

0

好吧! 我終於找到了。 問題出在SQL語句上。我不得不添加另一個條件來限制這一點。

它就像這樣。

「從部分刪除ActNo =?AND SectionNo =?LIMIT 1」;

'LIMIT 1'失蹤。我發現它在網絡上的某個地方,但我忘了鏈接。 任何方式都會將結果限制爲一行。就是我想要的。