2009-11-02 110 views
-1

所以,我幾乎有我的刪除功能工作,我有正確的頁面加載沒有任何致命的錯誤,但它仍然沒有伎倆。查詢刪除評論

這裏是我的while循環的一部分:

echo "<a href='http://[email protected]#@$#%##%#.org/Profile.php?id=".$prof->id."'>"; 
echo " delete"; 
echo "</a>"; 

這是我的查詢的部分這顯然是錯誤的:

$query = "UPDATE `ProfileComments` SET `status` = 'dead' WHERE `id` = '".$prof->id."' LIMIT 1"; 

所以,我怎麼得到這個刪除評論在頁面上?並將數據庫中的狀態標記爲死亡?

+1

我很樂意提供幫助,但您需要告訴我們代碼正在做什麼,或者顯示更多代碼。 – 2009-11-02 17:52:04

+0

你可以發佈你的PHP如何生成鏈接? – 2009-11-02 18:01:26

+0

基本上現在的代碼,重新加載頁面後,我點擊刪除(這是很好,這就是我想要的),但它不是刪除評論和標記爲我的分貝做的,我該怎麼做? – 2009-11-02 19:29:25

回答

0

僅僅因爲你沒有看到致命錯誤,你的代碼並不需要像你想要的那樣行事。

檢查$prof->id的內容,在循環內部,通過var_dump然後die,這將讓您控制該屬性在您想要打印的時刻保留的內容。

同樣的事情適用於您的查詢,var_dump看看它包含什麼。

0

沒有看到更多的代碼的(不知道你的經驗等級),我不知道,你確實需要幫助,所以原諒我,如果我的問題/建議是顯而易見的,也基本爲您提供:

$prof->id如何在Profile.php中填充?你是否將其從請求中拉出來(如下所示:$id = $_REQUEST["id"])?

正如Michael所說,請使用parameterized queries。 (如果你不在乎孩子,至少想到小貓!)

2

從你的sql看起來你正在做一個soft delete,這很好。 SELECT語句需要排除是「死」

SELECT columns FROM ProfileComments WHERE status != 'dead' AND id = {$prof->id} 

當然,這是一個猜測的狀態的意見沒有看到你如何填充prof->id當你生成的鏈接。

有一對夫婦的其他問題與你的訊息,但:

  1. 正如其他人的建議,你應該使用參數化查詢,否則你會把自己暴露給SQL注入
  2. 你不應該做刪除通過獲取請求(使用裸機)。要麼使用AJAX進行刪除,要麼通過表單進行刪除。通過get修改服務器數據是一種不好的做法。
0

你的SQL語句看起來很好,而且html代碼也很好。要找到問題

  1. 你需要確保你的SQL是獲得正確的參數,在這種情況下,ID。只是將其回顯出來,如果ID缺失或錯誤,您知道$ prof-> id需要修復。

  2. 還檢查您的PHP傾銷的鏈接,它是否包含正確的ID?

  3. 確保在執行SQL之前沒有任何錯誤,基本上確保調用SQL查詢語句。並確保你的數據庫連接是活的。

  4. 當mysql語句錯誤時,它不會拋出致命錯誤,您需要通過mysql_error()自己打印錯誤。