Mysql
 sql >> база данни >  >> RDS >> Mysql

Има ли интелигентен начин за стартиране на множество заявки в mysql, разделени с точка и запетая;

Ето едно работещо решение

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

?>
"; изход(); */ foreach($q_array as $q){ $q =trim($q); $r[] =mysqli_query($dblink,$q); } return $r;}$multi_query ="СЪЗДАВАНЕ НА ТАБЛИЦА, АКО НЕ СЪЩЕСТВУВА `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;СЪЗДАВАНЕ НА ТАБЛИЦА, АКО НЕ СЪЩЕСТВУВА `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);?>

Вероятно е по-разумно да използвате mysqli_multi_query, което е обяснено тук http://php.net /manual/en/mysqli.multi-query.php (благодарение на @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. Не може да се намери клас [org.springframework.orm.hibernate5.LocalSessionFactoryBean] за bean с име 'hibernate5AnnotatedSessionFactory'

  2. Пребройте поява на символи в низ с помощта на MySQL

  3. таблица за релации на заявка срещу друга колона

  4. WHERE LIKE с множество ключови думи

  5. трябва ли да използвам отново курсора в модула MySQLdb на python