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

Apakah ada cara cerdas untuk menjalankan beberapa kueri di mysql yang dipisahkan oleh titik koma;

Inilah solusi yang berfungsi

<?php
function function_that_does_multiple_queries($mq, $dblink) {
    // if a new line follows the ; then $q_array = explode(';\n',$mq); is suggested since queries can contain ; below
    $q_array = explode(";",$mq);
    /* 
    //To check structure of array
    echo "<pre>";
    print_r($q_array);
    echo "</pre>";
    exit();
    */
    foreach($q_array as $q){
        $q = trim($q);
        $r[] = mysqli_query($dblink,$q);
    }
    return $r;
}
$multi_query = "CREATE TABLE IF NOT EXISTS `stuff_5_firm` (
  `firmid` int(11) NOT NULL,
  `firm_name` varchar(256) NOT NULL,
  `firm_invoice_adr` text NOT NULL,
  `firm_invoice_email` varchar(256) NOT NULL,
  `firm_admin_con_to_userid` int(16) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `stuff_6_invoice` (
  `invoiceid` int(11) NOT NULL,
  `inv_date` datetime NOT NULL,
  `inv_due` datetime NOT NULL,
  `inv_paid` datetime NOT NULL,
  `inv_amount` int(11) NOT NULL,
  `inv_text` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;";

function_that_does_multiple_queries($multi_query, $dblink);

?>
"; KELUAR(); */ foreach($q_array as $q){ $q =trim($q); $r[] =mysqli_query($dblink,$q); } return $r;}$multi_query ="BUAT TABEL JIKA TIDAK ADA `stuff_5_firm` ( `firmid` int(11) NOT NULL, `firm_name` varchar(256) NOT NULL, `firm_invoice_adr` text NOT NULL, `firm_invoice_email` varchar (256) NOT NULL, `firm_admin_con_to_userid` int(16) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;CREATE TABLE IF NOT EXISTS `stuff_6_invoice` ( `invoiceid` int(11) NOT NULL, `inv_date`, datetime NOT `inv_due` datetime NOT NULL, `inv_paid` datetime NOT NULL, `inv_amount` int(11) NOT NULL, `inv_text` int(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;";function_that_does_multiple_query($multiple_query dblink);?>

Mungkin lebih bijaksana untuk menggunakan mysqli_multi_query yang dijelaskan di sini http://php.net /manual/en/mysqli.multi-query.php (terima kasih kepada @andrewsi).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pilih dengan dua hitungan pada kolom yang sama

  2. Mysql tidak dapat melakukan lebih dari 1 kueri sekaligus

  3. Panggil ke fungsi anggota addEagerConstraints() pada float LARAVEL

  4. Modul Terlaris Magento - Menjumlahkan Produk yang Dapat Dikonfigurasi Dan Menambahkannya Kembali

  5. hapus baris dengan fungsi ajax dan php