簡體   English   中英

選擇5秒前插入的行

[英]Select rows inserted within 5 seconds ago

我正在嘗試從數據庫中選擇5秒鍾前插入的行。

我目前正在使用此查詢:

$timerightnow = date("Y-m-d H:i:s");

if($stmt = $con->prepare("SELECT notimessage,
                          Second(TIMEDIFF('$timerightnow',dateofreg)) AS Second1
                          FROM notitb
                          WHERE checked = 0 HAVING Second1 <= 5")){

但是它沒有顯示任何結果。 我做得對嗎? 還是我的查詢從一開始就是錯誤的?

您的查詢當然有一些語法錯誤。 特別是,$ timerightnow是一個字符串,但不在引號中,ans Second1是一個別名,因此不能在WHERE ,只能在HAVING 如果您可以看到錯誤,則將對您有所幫助,而不是嘗試盲目地調試它們。 這將有助於:

http://php.net/manual/en/mysqli.error.php

然后,請注意, prepare不執行查詢,而只是准備查詢。 然后,您需要綁定參數(特別是,我將綁定當前日期,而不是將其硬編碼到查詢字符串中),然后您需要通過$stmt->execute()執行查詢。 目前尚不清楚是否要這樣做,因為代碼會被截斷,否則,代碼將被截斷:

http://php.net/manual/en/mysqli.prepare.php

請參閱那里的示例,在該示例中他們准備查詢,綁定一些參數並執行它。

最后,如果您想獲得最近5秒鍾內的所有內容,而不僅僅是五秒鍾前第二秒鍾發生的事情,則可能希望謂詞為Second1 <= 5而不是Second1 = 5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM