mysqli扩展库应用---批量执行sql语句

1, mysqli批量执行sql语句。基本语法:

$sqls=”sql1;sql2;………”

mysqli::multi_query($sqls);

同一个$sqls要么是增删改语句集合,要么是查询语句的集合,查询语句和增删改最好不要混合。应用示例如下:

① 操作数据库的代码:

<?php
class mysqliMutiTool{
    private $mysqli = null;
    private static $host = "10.252.158.217";
    private static $user = "root";
    private static $password = "521lhy";
    private static $db = "test";

    public function __construct(){
        $this->mysqli = new MySQLi(self::$host,self::$user,self::$password,self::$db);
        if($this->mysqli->connect_error){
            die("连接错误".$this->mysqli->connect_error);
        }
//        $this->mysqli->muti_query("set names utf-8");
    }

    public function execute_query($sqls){
        $res = $this->mysqli->multi_query($sqls);
        return $res;
    }

    public function getError(){
        return $this->mysqli->error;
    }

    public function getMysqli(){
        return $this->mysqli;
    }

}

② 增删改操作

<?php
require "mysqliMutiTool.class.php";

$mysqliMuti = new mysqliMutiTool();
$sqls = "insert into user1 (name,password,email,age) values(‘宋江‘,‘aaa‘,‘[email protected]‘,56);";
$sqls .= "insert into user1 (name,password,email,age) values(‘卢俊义‘,‘bbb‘,‘[email protected]‘,46);";
$sqls .= "insert into user1 (name,password,email,age) values(‘吴用‘,‘ccc‘,‘[email protected]‘,54);";
$sqls .= "update user1 set name = ‘吴用2‘ where id = 12;";
$sqls .= "delete from user1 where id = 15;";
$res = $mysqliMuti->execute_query($sqls);
if($res){
    echo "操作成功!";
}else{
    echo "".$mysqliMuti->getError();
}

③ 查询操作

<?php
require "mysqliMutiTool.class.php";

$mysqliMuti = new mysqliMutiTool();
$sqls = "select * from user1;";
$sqls .= "select * from words;";

$res = $mysqliMuti->execute_query($sqls);

$mysqli = $mysqliMuti->getMysqli();
if($res){
    do{
        //从mysqli连接取出第一个结果集
        $result = $mysqli->store_result();
        //显示mysqli result对象
        while($row=$result->fetch_row()){
            foreach($row as $key=>$val){
                echo "--$val";
            }
            echo "<br/>";
        }
        $result->free();
        echo "<br/>*******************新的结果集*******************<br/>";
    }while($mysqli->next_result());
}
$mysqli->close();
时间: 2024-10-04 08:28:24

mysqli扩展库应用---批量执行sql语句的相关文章

批量执行sql语句

基本使用 $sqls="sql语句1;sql语句2;sql语句n"; 或 $sqls="insert into xx;";  $sqls.="insert into xx;"; $res=mysqli::multi_query($sqls); 如果$sqls 是dml 语句,则$res 返回布尔值: 如果$sqls 是dql 语句,则$res 返回多个结果集,需要使用mysqli::store_result() 和 mysqli::more_re

SQL*PLUS中批量执行SQL语句

SQL*PLUS中批量执行SQL语句 今天由于工作的需要,要在CMD中批量执行大量的SQL语句,对于Oracle学习还处在入门阶段的我,只能硬着头皮到处去寻找资料(主要是网络资料,也包括自己的电子书),最后将所有的SQL语句一次性的执行完成. 首先,将要执行的所有的SQL语句,全部写入某个sql文件当中.例如f:\test.sql; 然后,通过通过sqlplus连接到数据库:如: SQL> sqlplus test/[email protected]; 再执行如下命令: SQL> @f:\te

JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句

conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("truncate QB_ShowCount_Asite_copy"); ps.executeBatch(); String SrcSql = "select convert(unhex(hex(convert(Community using latin1))) using utf8) as Commu

ThinkPHP3.2.3批量执行sql语句(带事务)

/*** 事务封装方法* @access public 将此方法放入框架model.class.php中* @param array $sqls 要执行的sql数组或语句* @param array $vals sql语句中要替换的值* @return boolean*/public function transExecuteSql($sqls){ $this->startTrans(); if(is_array($sqls)){foreach($sqls as $k => $sql){ $r

批量执行SQL语句,进行删除,插入或者更改。

private bool ExecuteTransaction(List<string> list) { using (SqlConnection connection = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["LocalConnectionString"].ToString())) { SqlCommand command = new SqlCommand(); S

向Oracle中传入数组,批量执行SQL语句

1.首先用PL/SQL创建package 1 create or replace package excuteBatchOperate 2 as 3 type sqlStr_Array is table of varchar2(1000) index by binary_integer; 4 procedure excuteBulkData(sqlStr in sqlStr_Array); 5 end excuteBatchOperate; 2.在packagebody内创建存储过程 1 cre

mysql工具Navicat批量执行SQL语句

例如:我现在要同时执行这么多语句 update community set xqmc=replace(xqmc,' ',''); update community set xqbm=replace(xqbm,' ',''); update community set dkxx=replace(dkxx,' ',''); update community set ssqy=replace(ssqy,' ',''); update community set ssjd=replace(ssjd,'

MySQL中批量执行SQL语句

DROP DATABASE IF EXISTS databaseWeb; -- 如果存在,则删除模式 databaseWebCREATE DATABASE databaseWeb CHARACTER SET utf8; -- 创建模式 databaseWeb.使用 utf8 编码 USE databaseWeb; -- 切换到模式 databaseWeb,以下操作均在 databaseWeb 下 set NAMES 'utf8'; -- 控制台使用 utf8 编码,若使用gbk编码则会使插入中文

边记边学PHP-(十七)PHP使用MySQLi扩展库操作数据库2

从前天开始,我的电脑不知道怎么了,写程序的时候无缘无故就死机.还不是彻底死,鼠标还能动,就是点击不好使,也打不开任务管理器.昨晚检查一下硬盘,有六个坏道,也不知道是不是这个原因.但是我在玩的时候,只要不打开编译器写程序,啥事也没有.玩游戏也不回出现那种情况.把我搞得好烦. 四.Mysqli扩展库增强 MySQLi扩展库在基础操作上看着没什么不同,只是从面面向过程转换成了面向对象.但是既然是mysql扩展库的增强,那一定有强的地方.有如下代码: 1.批量执行sql语句 <?php //mysqli