यहाँ एक कार्यशील समाधान है
<?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 के रूप में $q){ $q =trim($q); $r[] =mysqli_query($dblink,$q); } $r लौटाएं;}$multi_query ="यदि मौजूद नहीं है तो तालिका बनाएं `stuff_5_firm` (`फर्मिड` int(11) नॉट न्यूल, `फर्म_नाम` वर्कर (256) नॉट न्यूल, `फर्म_इनवॉइस_एड्र` टेक्स्ट न्यूल नहीं, `फर्म_इनवॉइस_मेल` वर्कर (256) न्यूल नहीं, `फर्म_एडमिन_कॉन_टो_यूसरिड` इंट(16) नॉट न्यूल) इंजन =इनो डीबी डिफॉल्ट चार्जसेट =लैटिन 1; टेबल बनाएं यदि मौजूद नहीं है तो `stuff_6_invoice` (`इनवॉइसिड` इंट (11) न्यूल नहीं है, `इनव_डेट` डेटाटाइम न्यूल नहीं है, `inv_देय` डेटाटाइम न्यूल नहीं, `inv_paid` डेटाटाइम न्यूल नहीं है, `inv_amount` int(11) नॉट न्यूल, `inv_text` int(11) NOT NULL) इंजन=InnoDB DEFAULT CHARSET=latin1;";function_that_does_multiple_queries($multi_query, $ dblink);?> संभवत:mysqli_multi_query का उपयोग करना बेहतर है, जिसे यहां समझाया गया है http://php.net /manual/hi/mysqli.multi-query.php (@andrewsi को धन्यवाद)।