2011-08-25 59 views
1

我在做什麼:(wp_posts具有ID作爲主鍵,它自動增大)如何在創建之前或同時創建主ID?

mysql_query("INSERT INTO wp_posts (post_content, post_title) VALUES ('$addEP', '$title')"); 
$rs = mysql_query("SELECT ID FROM wp_posts WHERE post_title='$title'"); 
$add_row = mysql_fetch_array($rs); 
$add_postid = $add_row['ID']; 
mysql_query("INSERT INTO wp_term_relationships (object_id, term_taxonomy_id) VALUES ('$add_postid', '$cat_id')"); 

所以基本上,我在做什麼是;我將內容插入到wp_posts中,然後運行另一個查詢來捕獲帖子的ID。然後將其設置到另一個表中。

有沒有可能做到這一點,而無需運行第二個查詢來獲取ID? 謝謝。

+0

的[PHP/MySQL的插入,然後排得「身份證」]可能重複(HTTP ://stackoverflow.com/questions/897356/php-mysql-insert-row-then-get-id) – netcoder

回答

1

$add_postid = mysql_insert_id();是你正在尋找。

所以

$rs = ... // and 
$add_row = ... 

...不再是必需的。

+0

謝謝,這就是我正在尋找=) – Muazam

1

mysql_insert_id()將返回值你,但只有插入操作後已完成。您不能在插入內使用它來捕獲新ID,因爲該ID尚未分配。

它在做內部工作select last_insert_id();

1

如果不手動通過帖子的ID,您將不得不使用mysql_insert_id()

注:

由於mysql_insert_id()作用於上次執行查詢時,一定要 調用mysql_insert_id()生成的 值的查詢之後。

在附註上,如果您還沒有註冊,我建議您檢查PDO