如果運行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();
如果運行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();
將這項工作?
DELETE FROM TABLE WHERE expire < CURRENT_TIMESTAMP
編輯:格雷格說,我真的沒有看到你當前的代碼有什麼問題。我提供的代碼可能會更多地保證您的表格已被正確清理。
謝謝你的回覆,但我得到了這個錯誤「致命錯誤:帶有消息'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
擺脫*。它應該是「DELETE FROM table ...」。不是「DELETE * FROM table ...」 –
你好,我正在使用查詢「DELETE FROM TABLE WHERE expire
DELETE FROM TABLE WHERE expire < curDate()
確保你被點名了正確的表和正確的字段..
什麼是你的代碼的問題?當你運行它會發生什麼? – gcochard
您的查詢看起來確實只是刪除*。 'DELETE FROM table WHERE DATE(expire)= CURDATE()' –
首先嚐試查詢MySql,然後將它注入到您的PHP代碼中。 –