PHP执行批处理MySQL语句的解决方案
为表=插入表值(1,2);插入表的值(2,3);
在PHP中可以使用三种方法来执行。
mysql_query
PDO
mysqli
三种方法都是正确的当表声明没有问题。
然而
SQL语句出错时会出现问题。
第一个SQL错误:所有三个方法返回false
第一个SQL是正确的,二SQL错误:mysql_query,PDO和mysqli:查询也回到真实。所以这个时候你无法判断你的语句,语句是错误的。
有几种方法可以解决这个问题。
1解析sql语句
每个SQL被分割开来执行。每个语句的执行都被解决了。但是有几种方法可以做到这一点,所以不可取。
2保存SQL语句文本
使用CMD来执行命令mysql…。sqls.sql,然后捕获输出。这样做,但我感觉是围绕问题,应该有更好的方式。
3使用mysqli::multi_query方法
这种方法可以执行多个SQL语句,然后使用mysqli::next_result设置SQL的偏移,并使用mysqli::误差得到的电流偏移SQL错误状态。
下面是第三种方法的例子
代码如下:
复制代码代码如下所示:
为SQL =配置::把('sql);
$content = file_get_contents($ SQL);
$配置=配置::把('config)
mysqli = mysqli_connect美元(美元配置{ 'host},{ $配置用户},{ 'password美元配置'},{ 'dbname美元配置'});
ret =美元美元mysqli -> multi_query(内容);
如果($ = false){
回声mysqli_error($ mysqli);
}
而(mysqli_more_results($ mysqli)){
如果(mysqli_next_result($ mysqli)= false){
回声mysqli_error($ mysqli);
;
打破;
}
}
$ mysqli ->关闭();
这样,当任何的SQL语句有错误,程序会跳出错误。
如果你想写一个初始化MySQL的脚本,它是非常好的。