[英]CodeIgniter getting the most recently entered row from database and using it in controller
[英]Get information from specific row of most recently inserted database entry
顯然這...
$lastid = $wpdb->insert_id
...會給我最后插入的行(如此處所述: 如何從wordpress數據庫中獲取最后插入的行ID? )。
但是,在提交表單后,如何定位特定的表並從最新插入的行中獲取信息?
例如,我有一個名為“ license”的表,每一行都包含“ email”和“ name”列(以及其他列)。
我的想法是,在我使用表單將某些內容插入該行之后,我需要在屏幕上顯示電子郵件和姓名。
任何幫助都是極好的。
您可以使用自動增量列的值。 您可能已經擁有ID
列了。
在新的SELECT
語句中,使用ORDER BY myCol DESC
的auto-increment-coloumn並使用LIMIT 1
僅獲得具有最高值的值(其中最近的值為1)。
根據您已經擁有的內容,必須將最后插入的ID用於新查詢。
$query = "select * from license where id = ".$lastid;
使用此查詢的結果,您可以打印出最后插入的行的其他信息。
如果您需要有關php代碼的更多信息,請提供您的代碼,以便我們進行相應的編輯
通常, 由於最近執行的INSERT語句 ,最后插入記錄的ID (在您的示例中為Wordpress)只能從列中提取(如名稱所示)ID(AUTO_INCREMENT)。 MySQL文檔
如果為特定的反向時間點指定“獲取XYZ表的lastID”,則沒有直接方法,只能按上述方式工作。
即使在php中使用了正確的用法,在嘗試獲取LAST_INSERT_ID之前,如果在其他表上執行了其他INSERT語句(您不希望執行的語句),也需要小心,這樣您就不會最終從不需要的表中獲取ID。
您可能的解決方法:
從ID desc排序的所需表中執行SELECT,例如:
SELECT id FROM xyz ORDER BY id DESC LIMIT 1;
這是假設id是AUTO_INCREMENT或類似的
另一個選擇是,如果可能的話,在代碼中找到您想要的表的INSERT語句的“位置”,例如xyz,並在那里獲取ID:
$wpdb->insert_id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.