我有一個表。主鍵是id
並自動遞增。 現在,當我插入新記錄時,我需要獲取記錄更新的ID。 我該怎麼做?如果我使用查詢...MYSQL:SQL查詢來獲取自動增量字段的值
select max(id) from table_name
...執行後我可以得到id。但我能確定它剛插入的記錄的ID嗎?因爲很多人會同時使用該應用程序。
我使用的是php和mysql。
可以ayone provie我在PHP與MySQL示例代碼片段?
我有一個表。主鍵是id
並自動遞增。 現在,當我插入新記錄時,我需要獲取記錄更新的ID。 我該怎麼做?如果我使用查詢...MYSQL:SQL查詢來獲取自動增量字段的值
select max(id) from table_name
...執行後我可以得到id。但我能確定它剛插入的記錄的ID嗎?因爲很多人會同時使用該應用程序。
我使用的是php和mysql。
可以ayone provie我在PHP與MySQL示例代碼片段?
使用相同的連接,運行此查詢下一個:
SELECT LAST_INSERT_ID()
你的數據庫驅動程序可能有一個方便的功能。
閱讀文檔。
你是什麼意思我使用相同的連接? 你可以給我示例代碼在PHP與MySQL – user177785 2009-09-25 15:15:32
相同的連接意味着關閉或開始另一個連接到數據庫之前。 – random 2009-09-25 15:38:54
假設你正在使用的MySQLi PHP擴展,你想要的命令是mysqli_insert_id
如果你想要找出自動增量列中的最新ID,您只需在插入查詢後立即運行mysql_insert_id()
函數。
像這樣:
//--connection already made to database
//--now run your INSERT query on the table
mysql_query("INSERT INTO table_name (foo_column) VALUES ('everlong')");
//-- right after that previous query, you run this
$newest_id = mysql_insert_id();
現在$newest_id
將包含插入最新的行的ID。
這裏是例如在PHP中:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("YOUR QUERY HERE", $link);
$inserted_id = mysql_insert_id($link));
,你可以用它來獲取下一個AUTO_INCREMENT值(因爲你已經連接到服務器和價值選擇的數據庫;
$query = "SHOW TABLE STATUS LIKE 'tbl_name'";
$result = mysql_query($query);
$auto_incr_val = mysql_result($result, 0, 'Auto_increment');
echo $auto_incr_val;
這將給你在auto_increment列將被使用的值。 編輯:對不起。這不是你的問題....
Q uery
show create table
包含您在最後一個字符串
看樣子你是剛開始使用PHP和MySQL所需的信息。你會發現PHP手冊(http://ca2.php.net/manual/en/index.php)非常有用,非常清楚。 MySQL手冊(http://dev.mysql.com/doc/)也很廣泛。 – dnagirl 2009-09-25 15:20:51