Cara terbaik untuk memasukkan kumpulan dalam mysqli?
P粉951914381
P粉951914381 2023-08-24 21:16:22
0
2
458

Saya sedang mencari teknik selamat suntikan SQL untuk memasukkan sejumlah besar baris (~2000 baris) sekali gus menggunakan PHP dan MySQLi.

Saya mempunyai tatasusunan yang mengandungi semua nilai yang mesti mengandunginya. Pada masa ini saya sedang melakukan ini:

prepare($query); $stmt ->bind_param("s", $one); $stmt->execute(); $stmt->tutup(); } ?> 

Saya cuba call_user_func_array() tetapi ia mengakibatkan limpahan tindanan.

Apakah cara yang lebih pantas untuk melakukan ini (seperti memasukkan kesemuanya sekali gus?) tetapi masih menghalang suntikan SQL (seperti pernyataan yang disediakan) dan limpahan tindanan?

P粉951914381
P粉951914381

membalas semua (2)
P粉530519234

Cuba lagi, saya tidak faham mengapa kod asal anda tidak berfungsi selepas sedikit pengubahsuaian:

$query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt->bind_param("s", $one); foreach ($array as $one) { $stmt->execute(); } $stmt->close();
    P粉340980243

    Dengan memasukkan sisipan anda ke dalam transaksi, anda seharusnya dapat meningkatkan kelajuan dengan ketara. Anda juga boleh mengalihkan penyata sediakan dan ikat di luar gelung.

    $array = array("array", "with", "about", "2000", "values"); $query = "INSERT INTO table (link) VALUES (?)"; $stmt = $mysqli->prepare($query); $stmt ->bind_param("s", $one); $mysqli->query("START TRANSACTION"); foreach ($array as $one) { $stmt->execute(); } $stmt->close(); $mysqli->query("COMMIT");

    Saya telah menguji kod ini pada pelayan web saya untuk 10,000 lelaran.

    Tiada urusan:226 秒。Waktu dagangan:2 秒。Atau速度提高两个数量级, sekurang-kurangnya untuk ujian ini.

      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!