2012-10-02 64 views
0

如果運行mysql查詢刪除行,如果它等於expire列中的日期,那麼最佳方式是什麼?刪除mysql行,其中日期等於到期日期

這是我當前的代碼:

$sql = "DELETE * FROM table WHERE DATE(expire) = CURDATE()"; 

$q = $conn->prepare($sql) or die("failed!"); 
// Bind the params to the placeholders 
$q->execute(); 
+0

什麼是你的代碼的問題?當你運行它會發生什麼? – gcochard

+2

您的查詢看起來確實只是刪除*。 'DELETE FROM table WHERE DATE(expire)= CURDATE()' –

+1

首先嚐試查詢MySql,然後將它注入到您的PHP代碼中。 –

回答

2

將這項工作?

DELETE FROM TABLE WHERE expire < CURRENT_TIMESTAMP 

編輯:格雷格說,我真的沒有看到你當前的代碼有什麼問題。我提供的代碼可能會更多地保證您的表格已被正確清理。

+0

謝謝你的回覆,但我得到了這個錯誤「致命錯誤:帶有消息'SQLSTATE [42000]的未捕獲異常'PDOException':語法錯誤或訪問衝突:1064您的SQL語法中有錯誤;請檢查與您的MySQL服務器版本的正確語法附近使用* FROM表中的WHERE DATE(過期)= CURDATE()'在/home/stude295/public_html/deletead.php:9堆棧跟蹤:#0/home/stude295 /public_html/deletead.php(9):PDOStatement-> execute()#1 {main}拋出/第9行/home/stude295/public_html/deletead.php「 – neeko

+0

擺脫*。它應該是「DELETE FROM table ...」。不是「DELETE * FROM table ...」 –

+0

你好,我正在使用查詢「DELETE FROM TABLE WHERE expire neeko

0
DELETE FROM TABLE WHERE expire < curDate() 

確保你被點名了正確的表和正確的字段..