PHP执行批量mysql语句的解决方法 |
本文标签:php,mysql,语句 当有多条mysql语句连起来需要执行,比如 $sqls= “insert table a values(1,2); insert table a values(2,3);” 需要执行的话php中可以使用的方法有三个: mysql_query pdo mysqli 三种方法当sqls语句没有问题的时候都是可以的 。 但是 当sql语句是错误的时候会出现问题 第一条sql正确,第二条sql错误:mysql_query、pdo、 mysqli:query也是返回true 。所以这个时候你是没法判断你的sqls是否有那条语句是错误的 。
1 解析sql语句 2 将sqls语句保存为文本 3 使用mysqli::multi_query方法 下面是第三种方法的示例代码 代码如下: 复制代码 代码如下: $sql = Config::get(sql); $content = file_get_contents($sql); $config = Config::get(config) $mysqli = mysqli_connect($config[host], $config[user], $config[password], $config[dbname]); $ret = $mysqli->multi_query($content); if($ret === false) { echo mysqli_error($mysqli); } while (mysqli_more_results($mysqli)) { if (mysqli_next_result($mysqli) === false) { echo mysqli_error($mysqli); echo "\r\n"; break; } } $mysqli->close(); 这样的话当sqls语句中任意一条有错误的话,程序就会跳出这个错误 。 如果你要编写初始化mysql的脚本的话,这招就非常好用了 。
|