mysqliにバッチ挿入する最良の方法は?
P粉951914381
P粉951914381 2023-08-24 21:16:22
0
2
461
<p>PHP と MySQLi を使用して一度に大量の行 (約 2000 行) を挿入する SQL インジェクションの安全な手法を探しています。 </p><p>含まれなければならないすべての値を含む配列があります。 現在、私はこれを行っています: </p> <pre class="brush:php;toolbar:false;"><?php $array = array("配列", "with", "約", "2000", "値"); foreach ($array を $one) { $query = "INSERT INTO テーブル (リンク) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt ->bind_param("s", $one); $stmt->execute(); $stmt->close(); } ?></pre> <p>call_user_func_array() を試してみましたが、スタック オーバーフローが発生しました。 </p> <p>SQL インジェクション (プリペアド ステートメントなど) やスタック オーバーフローを防ぎながら、これをより高速に行う方法 (すべてを一度に挿入するなど) は何ですか? </p>
P粉951914381
P粉951914381

全員に返信(2)
P粉530519234

もう一度試してください。少し変更しただけで元のコードが機能しなくなる理由がわかりません:

リーリー
いいねを押す +0
P粉340980243

挿入をトランザクションに入れることで、処理を大幅に高速化できるはずです。 prepare ステートメントと binding ステートメントをループの外に移動することもできます。

リーリー

私はこのコードを Web サーバーで 10,000 回繰り返しテストしました。

トランザクションなし: 226 秒。 トランザクション時間: 2 秒。 あるいは 少なくともこのテストでは 2 桁高速になります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!