WordPressデータベースから最後に挿入された行IDを取得するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1576018

質問

私のWordPressプラグインにはテーブルがあります 自動増加 IDと呼ばれる主要なキーフィールド。新しい行がテーブルに挿入されたら、挿入のID値を取得したいと思います。

この機能は、AJAXを使用してデータをサーバーに投稿してDBに挿入することです。新しい行IDは、クライアントのステータスを更新するAJAX応答で返されます。複数のクライアントが同時にサーバーにデータを投稿している可能性があります。したがって、各AJAX要求が正確な新しい行IDを取得することを確認する必要があります。

PHPには、呼ばれる方法があります mysql_insert_id この機能については、引数がある場合にのみ、人種状態に有効です link_identifier 最後の操作の。データベースを使用した私の操作は$ wpdbにあります。抽出する方法 link_identifier $ wpdbからmysql_insert_idが動作することを確認しますか? $ wpdbから最後の挿入列IDを取得する他の方法はありますか?

ありがとう。

役に立ちましたか?

解決

直後 $wpdb->insert() それが挿入を行います、これを行います:

$lastid = $wpdb->insert_id;

WordPressの方法を実行する方法の詳細は、WordPress Codexにあります。上記の詳細は、ここにあります WPDBクラスページ

他のヒント

これが私のコードでそれをした方法です

 ...
 global $wpdb;
 $query =  "INSERT INTO... VALUES(...)" ;
 $wpdb->query(
        $wpdb->prepare($query)
);
return $wpdb->insert_id;
...

より多くのクラス変数

このようなこともそれをするべきです:

$last = $wpdb->get_row("SHOW TABLE STATUS LIKE 'table_name'");
$lastid = $last->Auto_increment;

に電話をかけます mysql_insert_id() トランザクション内で、それを行う必要があります:

mysql_query('BEGIN');
// Whatever code that does the insert here.
$id = mysql_insert_id();
mysql_query('COMMIT');
// Stuff with $id.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top