2011-08-16 5 views
2

私は単純なプラグインを作成しました。バックエンドには設定サイトがあり、ユーザサイトにはいくつかの機能があります。いくつかのユーザーの選択肢をデータベースに保存する必要があります。最初は$ wpdb-> insert()と$ wpdb-> update()メソッドを使用しましたが、https://codex.wordpress.org/wpdb_Class#Protect_Queries_Against_SQL_Injection_Attacksを読んだ後に$wpdb->query($wpdb->prepare())に変更したいと思います。

しかし、新しい選択クエリを使用せずに、ちょうど挿入された行のIDを取得するにはどうすればよいですか? $ wpdb-> insert_idでこのIDを持っていますが、$ wpdb-> query()を使うとこのフィールドは空です...

答えて

5

$ wpdb-> insert )と$ wpdb-> update()は、$ wpdb-> prepare()関数とその保護を暗黙的に使用しています。

たとえば、ワードプレス$ wpdb->更新()関数は、最後の2行にあります。

$sql = "UPDATE `$table` SET " . implode(', ', $bits) . ' WHERE ' . implode(' AND ', $wheres); 
return $this->query($this->prepare($sql, array_merge(array_values($data), array_values($where)))); 

ので、挿入されたIDを取得するには、保護され、私はあなたが$ wpdb-を使用することをお勧め>挿入()。

関連する問題