mysqli-j9九游会真人游戏第一品牌

程序初始化时创建数据表结构的时候需要批量执行文件中的sql语句,但是mysqli_query不支持批量执行多语句。

解决这个问题可以用preg_split正则来按';'号把sql语句拆成数组;再通过循环执行mysqli_query即可;因为每句sql都是以';'号结束的;

主要代码:

$sql_array=preg_split("/;[\r\n] /", $sql);        
foreach ($sql_array as $k => $v) {  
   mysqli_query($conn,$v);
   echo mysql_error($conn).'
'; }

完整示例:

'; 
    mysqli_query($conn,'set names utf8');
    $sql="drop table if exists `www`;
create table `www` (
  `id` int(11) not null auto_increment,
  `username` varchar(50) default null,
  `password` varchar(50) default null,
  `sex` varchar(255) default null,
  primary key (`id`)
) engine=myisam auto_increment=32 default charset=utf8;
insert into `www` values (1,'20154071101','123','男'),(2,'20154071102','123','男'),(3,'20154071103','123','男');"; 
    $sql_array=preg_split("/;[\r\n] /", $sql);
        $flag=true;
        foreach ($sql_array as $k => $v) {  
           mysqli_query($conn,$v);
            if(mysqli_error($conn)){//出错
                echo mysqli_error($conn).'
'; $flag=false; } else echo "查询成功".'
'; } if($flag) echo "恭喜*数据库创建成功"; else echo "抱歉*数据库创建失败(有错误)"; mysqli_close($conn); ?>

参考:


发表评论 登录

目前评论:0