Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Sisipkan Sederhana berfungsi dengan phpmyadmin tetapi tidak dengan php

Hanya untuk memastikan:ketika Anda mencoba menjalankan 4 kueri ini dari PHP, Anda memanggil mysql_query empat kali ?

Misalnya :

mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,1,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,2,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,3,1)");
mysql_query("INSERT INTO um_group_rights (`um_group_id`,`cms_usecase_id`,`um_right_id`) VALUES (2,4,1)");


Yang saya maksud adalah :Anda tidak dapat mengirim beberapa kueri yang berbeda sekaligus, dengan hanya satu panggilan ke mysql_query (mengutip, penekanan saya) :

Anda harus "memisahkan" kueri Anda -- yang mungkin merupakan sesuatu yang dilakukan phpMyAdmin tanpa memberi tahu Anda.

Dan, seperti yang @Alexandre tunjukkan di komentar :


Jika Anda menggunakan mysqli_* fungsi (dan bukan mysql_* ) untuk mengakses database Anda, Anda dapat mencoba menggunakan mysqli_multi_query .

Sayangnya, ada fungsi seperti itu untuk mysql_* .

(BTW :mysql_* API adalah yang lama -- akan lebih baik, terutama untuk proyek baru, menggunakan mysqli_* )


Edit setelah komentar :

Jika ini tentang kinerja, ya, melakukan satu panggilan ke database, alih-alih empat PHP <-> MySQL berturut-turut panggilan, bisa lebih baik.

Dalam hal ini, Anda dapat mencoba menggunakan sintaks insert yang memungkinkan untuk menyisipkan beberapa baris sekaligus; lihat 12.2.5. MASUKKAN Sintaks dalam manual MySQL (mengutip) :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL berbeda dihitung jika kondisinya unik

  2. Kueri gema sebelum eksekusi dan tanpa eksekusi di Rekaman Aktif codeigniter

  3. Bagaimana cara mencadangkan seluruh database MySQL dengan semua pengguna dan izin dan kata sandi?

  4. Pernyataan pembaruan MYSQL untuk mengisi ulang peringkat oleh setiap id

  5. Apa yang dapat menyebabkan mysql db read mengembalikan data basi