WordPressデータベースから最後に挿入された行IDを取得するにはどうすればよいですか?
-
21-09-2019 - |
質問
私の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.
所属していません StackOverflow