簡體   English   中英

如何在INSERT之前獲取mysql行的ID

[英]How to get the ID of a mysql row before INSERT

我可以在INSERT之后通過mysql_insert_id()獲取ID; 但我想以ID-image_name.jpg的形式保存圖像並將其保存在名為Image_Name的列中。 如何使用即將到來的ID保存圖像? 或者最好在INSERT進程后保存圖像文件?

在INSERT過程之后保存它是最直接的方法。

mysql_query("INSERT INTO....."); // etc. etc.
$id = mysql_insert_id();
mysql_query("UPDATE table SET image = '$image_name' WHERE id = '$id'");

是的,最好在INSERT之后保存圖像。 如果保存文件失敗,您將要撤消INSERT(使用DELETE或回滾事務)。 如果使用標准命名方案,則不必再次觸摸數據庫以在表中設置文件名(因為表中不需要文件名)。

您可以使用臨時唯一名稱(如20個字母的隨機字符串)保存圖像,並在插入完成后重命名該圖像。

正如其他人所說,在INSERT之前你無法可靠地獲取ID。

如果要求圖像文件名與行ID匹配,我會堅持mu的建議(在事務中INSERT,保存文件,更新行,COMMIT事務)。

另一種方法(如果你沒有id匹配文件名的要求)將使用uniqid()命名文件。 這將允許您保存文件並使用單個查詢INSERT該行,而無需保持事務處於打開狀態。

暫無
暫無

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

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