Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Có cách nào thông minh để chạy nhiều truy vấn trong mysql được phân tách bằng dấu chấm phẩy không;

Đây là một giải pháp hiệu quả

<?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);

?>
"; lối ra(); * / foreach ($ q_array dưới dạng $ q) {$ q =trim ($ q); $ r [] =mysqli_query ($ dblink, $ q); } return $ r;} $ multi_query ="TẠO BẢNG NẾU KHÔNG TỒN TẠI` thứ_5_firm` (`firmid` int (11) NOT NULL,` firm_name` varchar (256) KHÔNG 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; TẠO BẢNG NẾU KHÔNG TỒN TẠI` thứ_6_invoice` (`billid` 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);?>

Có lẽ sẽ khôn ngoan hơn khi sử dụng mysqli_multi_query được giải thích ở đây http://php.net /manual/en/mysqli.multi-query.php (cảm ơn @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. Lưu trữ các giá trị Ngày / Giờ cụ thể cho người dùng ở các múi giờ khác nhau

  2. Hàm gọi MySqlCommand

  3. Làm thế nào để lưu trữ nhiều mục trong một cột cơ sở dữ liệu?

  4. GROUP BY (Máy chủ MySQL và SQL)

  5. Kết nối với cơ sở dữ liệu máy chủ từ localhost