正常狀況下用php的mysql_query函數是不能批量執行多句CREATE TABLE之類的語句的;php
而有些場景;好比說有一個sql備份文件、又或是程序初始化時建立數據表結構的時候須要批量執行文件中的sql語句;mysql
解決這個問題能夠用explode函數按';'號把sql語句拆成數組;再經過循環執行mysql_query便可;由於每句sql都是以';'號結束的;
sql
可是考慮到sql語句中可能有實體符號 之類的;若是按';'號來拆;容易誤傷;因此用preg_split正則來拆更靠譜;數組
示例環境:函數
sql文件:./thinkbjy.sqlcode
$sql_array=preg_split("/;[\r\n]+/", file_get_contents('./thinkbjy.sql')); foreach ($sql_array as $k => $v) { mysql_query($v,$link); echo mysql_error().'<br>'; }
執行 echo mysql_error().'<br>';用來查看是否有錯誤;get