My WordPressプラグインにはAUTO_INCREMENT IDという主キーフィールドを持つテーブルがあります。テーブルに新しい行が挿入されると、ID値を取得したいです挿入の。
機能は、AJAXを使用してサーバーにデータをポストし、DBに挿入します。新しい行IDは、クライアントのステータスを更新するためのAJAX応答で返されます。複数のクライアントが同時にサーバーにデータを送信している可能性があるため、各AJAXリクエストに応答してEXACTの新しい行IDが取得されるようにする必要があります。
PHPには、この機能にはmysql_insert_idというメソッドがありますが、競合状態の場合にのみ有効ですlink_identifierは最後の操作です。データベースでの私の操作は$ wpdbにあります。 $ -wpdbからlink_identifierを抽出して、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;