2012-03-07 212 views
0

編輯使用_GET URL鏈接從mysql數據庫中刪除記錄

感謝您的幫助迄今。我編輯了我的帖子以反映下面提出的更改。我正在使用PDO進行數據庫連接。我現在的代碼如下:

HTML

<a href="includes/delete-customer.php?userID='.$row->customer_id.'"> 

PHP

<?php 

    //MySQL Database Connect 
    include 'includes/config.php'; 

     // confirm that the 'id' variable has been set 
     if (isset($_GET['userID']) && is_numeric($_GET['userID'])) 
     { 
       // get the 'id' variable from the URL 
       $id = $_GET['userID']; 

       /* Delete row from the customer table */ 
       $id = $dbh->exec("DELETE FROM customer WHERE customer_id = '$id'"); 

       $stmt->execute(); 
     } 
?> 

的config.php

<?php 

/*** mysql hostname ***/ 
$hostname = 'localhost'; 

/*** mysql username ***/ 
$username = 'user'; 

/*** mysql password ***/ 
$password = 'password'; 

try { 
    $dbh = new PDO("mysql:host=$hostname;dbname=testDB", $username, $password); 
    } 
catch(PDOException $e) 
    { 
    echo $e->getMessage(); 
    } 
?> 

我m很確定HTML現在是正確的,問題在於delete-customer.php文件。我目前收到以下錯誤:致命錯誤:調用一個非對象的成員函數exec()

我不確定如何正確實現PDO查詢。任何進一步的建議非常感謝。

+0

@Morgan謝謝你的回覆。我剛剛更新了我認爲可能是問題的html鏈接,但它仍然沒有從我的數據庫中刪除記錄。任何進一步的想法都非常感謝。 – 2012-03-07 02:45:41

+0

請檢查我在下面發佈的答案。你爲什麼要在你的querystring參數中添加一個文字$ id? – Morgon 2012-03-07 02:54:02

回答

1

HTML代碼段說:

<a href="includes/delete-customer.php?customer_id=$id['.$row->customer_id.']"> 

這是您的確切的HTML語法?該參數應該是實際的數字ID,即 -

<a href="includes/delete-customer.php?customer_id=3"> 

- 無論是通過回$row->customer_id(假設它存在),或知道該用戶ID的其它一些方法。

您的HTML只需要發送實際數據,而不是任何種類的變量語法。您接收的PHP($_GET['customer_id'])會爲您解釋並正確傳遞給MySQL。

0

你的URL通過userID作爲get參數,但在你的php腳本中,你試圖訪問customer_id。試着改變你的代碼來檢索userID,它應該工作

if (isset($_GET['userID']) && is_numeric($_GET['userID'])) 
+0

謝謝@Christian我已經修復了我的HTML和PHP符合上述建議,但我得到以下錯誤與我的PHP致命錯誤:調用成員函數prepare()...第13行 – 2012-03-07 03:24:31

+0

你的數據庫連接如何被製造?發佈數據庫連接的一些代碼 – 2012-03-07 03:28:11

0
<a href="includes/delete-customer.php?customer_id=<?php echo $id[$row->customer_id]; ?>"> 

假設$ ID [$按行> CUSTOMER_ID]是有效的。

另外,你真的不應該從數據庫中刪除得到var,除非你正在做一些管理員驗證/訪問規則,並保證你沒有任何工作的人會去流氓並在那裏手動輸入數字。那簡直太瘋狂了。

+0

我很驚訝在看到@Kai Qing的允許$ _GET請求刪除記錄的警告之前,我瀏覽了多少個答案。我找不到這個故事的鏈接,但是有一篇關於整個數據庫被一個其他行爲良好的機器人銷燬的文章。不要這樣做! – TecBrat 2012-03-07 03:38:37

+0

@TecBrat感謝您的反饋,您能否提供一個鏈接,指向使用直接鏈接從我的數據庫中刪除記錄的最佳做法?非常感謝。 – 2012-03-07 15:07:17

相關問題