`
jiagou
  • 浏览: 2532409 次
文章分类
社区版块
存档分类
最新评论

php学习笔记(十九)mysqli扩展库的多语句查询、事物处理以及字符集设置

 
阅读更多
<?php
    /**
     * 处理数据库的扩展库
     *
     *     1.执行多条查询语句
     *         多语句查询:        $mysqli->multi_query($sqls)
     *         开始获取结果集:    $mysqli->store_result()
     *         判断是否还存在结果集:$mysqli->more_results()
     *         指针移到到下一个结果集:$mysqli->next_result()
     *         
     *     2.事物处理
     *         目前只有INNODB和BDB两种存储引擎支持事物
     *         默认是:myisam。
     *
     *         所以在建表的时候要指定innodB;在创建语句后加入type = 'INNODB'
     *         而且默认自动提交(导致插入数据不能回滚的)
     *         关闭自动提交:set autocomment = 0;
     *         并要开启事物:START TRANSACTION;
     *         回滚:rollback
     *     
     *     3.设置字符集
     *         在sql语句上
     *         $mysqli->query("set names gb2312");
     *         $mysqli->set_charset("utf8");
     *
     */

//使用面向对象的方式:
$mysqli = new mysqli("localhost","root","root","hibernate");
if (mysqli_connect_errno()){
    echo "连接失败:".mysqli_connect_error();
    $mysqli = null;
    exit();
}
//var_dump($mysqli);
//查看字符集
//echo $mysqli->character_set_name();

//没有结果集的insert update delete
$sqls = "insert into users values(27,'wodm a ','45');"
        ."update users set name = 'devil' where id >12;";
//有结果集的select
$sqls = "select * from users where id < 10;"
        ."select * from tb_company;";
if ($mysqli->multi_query($sqls)){
    echo "执行成功".$mysqli->affected_rows.$mysqli->insert_id."<br>";
    do{
        $result = $mysqli->store_result();
        while ($row = $result->fetch_assoc()){
            foreach ($row as $cal){
                echo $cal."      ";
            }
            echo "<br>";
        }
        //指向第二个结果集
    }while ($mysqli->more_results()?$mysqli->next_result():FALSE);
}else {
    echo $mysqli->errno."--".$mysqli->error;
}


//创建表
$createsql = "CREATE TABLE admins(id int not null auto_increment,name varchar(50) not null default '',price double not null default '0.00',primary key (id)) type = 'INNODB'";
$mysqli->query($createsql);

$sql = "update users set name='sjdkfjslkfjs' where id < 5";
//设置自动提交为假
$mysqli->autocommit(0);

$error = true;
$result = $mysqli->query($sql);
if ($result) {
    echo "更新成功";
}else{
    $error = false;
}
if ($error){
    echo "成功提交";
    $mysqli->commit();
}else{
    echo "失败回滚";
    $mysqli->rollback();
}

//设置字符集(gb2312插入utf8查询,就会出现乱码了)
//与下个set names 一样的效果
//$mysqli->set_charset("utf8");
//$mysqli->query("set names gb2312");
//$inser = "insert into users values(30,'张三',23);";
//$mysqli->query($inser);
//$mysqli->commit();
//设置字符集
$mysqli->query("set names utf-8");
$sql = "select * from users where id =30;";
$result = $mysqli->query($sql);
//循环输出数据
while ($row = mysqli_fetch_row($result)){
    foreach ($row as $cal){
        echo $cal."      ";
    }
    echo "<br>";
}

//释放结果集
//$result->close();
$mysqli->close();
?>


分享到:
评论

相关推荐

    MySQLi扩展库来袭—课程源代码

    MySQLi扩展库来袭—课程源代码 MySQLi扩展库来袭—课程源代码

    第十三章 PHP的mysqli扩展

    这是细说php的电子版。不多。PHP的mysqli扩展

    计算机后端-php视频教程096 php数据库编程-使用mysqli扩展库(布置练习).wmv

    计算机后端-php视频教程096 php数据库编程-使用mysqli扩展库(布置练习).wmv

    PHP使用mysqli同时执行多条sql查询语句的实例

    之前我们有介绍过如何在PHP5中使用mysqli的prepare操作数据库,使用mysqli更是支持多查询特性,请看下面这段php代码: &lt;?php $mysqli = new mysqli(localhost,root,,123456); $mysqli-&gt;query(set names 'utf8');...

    PHP实现基于面向对象的mysqli扩展库增删改查操作工具类

    mysqli扩展库是MySQL扩展库的改进版本,在mysql扩展库的基础上提高了稳定性和效率,mysqli扩展库有两套东西,一套就是面向过程的mysqli另一套是面向对象的mysqli。操作方式大体和mysql扩展库大体一致,这次还是先...

    第十三章PHP的mysqli扩展.pdf

    从php5.0开始,不仅可以使用早期的mysql扩展函数,而且还可以使用新的扩展mysqli技术来实现与mysql数据库的信息交流。

    php学习笔记

    mysqli扩展库 69 一.查询数据库中的表 69 二.释放资源的方式 69 三.增删该查类 69 四.预编译 70 mail 71 ZendFramework 73 快速体验 73 修改数据 74 增加数据 74 查询数据 74 memcached 76 telnet操作 ...

    PHP实现mysqli批量执行多条语句的方法示例

    本文实例讲述了PHP实现mysqli批量执行多条语句的方法。分享给大家供大家参考,具体如下: 可以一次性的执行多个操作或取回多个结果集。 实例: &lt;?php $mysqli = new mysqli("localhost", "root", "111111", ...

    解析在PHP中使用mysqli扩展库对mysql的操作

    1、在PHP中 使用mysqli扩展库对mysql 的dql操作复制代码 代码如下:&lt;?php header(“Content-type: text/html;charset=utf-8”); //mysqli操作mysql数据库(面向对象方式) //1、创建MySQLi对象 $mysqli =new ...

    PHP-MySQLi-Database-Class, 一个使用 MySQLi 和预处理语句的PHP MySQL类的包装器.zip

    PHP-MySQLi-Database-Class, 一个使用 MySQLi 和预处理语句的PHP MySQL类的包装器 $v ) 和数组($k = &gt; array ($v ,$v))中的结果。 $user = $db-&gt;map (\'login\')-&gt;ObjectBuilder()-&gt;getOne (\'users\', \'login

    PHP mysqli扩展库 预处理技术的使用分析

    1、使用mysqli扩展库 预处理技术 mysqli stmt 向数据库添加3个用户 代码如下:&lt;?php  //mysqli扩展库 预处理技术 mysqli stmt 向数据库添加3个用户 //1、创建mysqli对象 $mysqli = new MySQLi(“localhost”,”...

    解决phpmyadmin中缺少mysqli扩展问题的方法

    phpMyAdmin错误 缺少 mysqli 扩展。请检查 PHP 配置 的解决方案 phpMyAdmin 缺少 mysqli 扩展。请检查 PHP 配置 的解决方案: 缺少 mysqli 扩展。请检查 PHP 配置。 打开你的php.ini-&gt;一般在C:WINDOWS目录下。 找到 ...

    mysqli多查询特性 实现多条sql语句查询

    mysqli相对于mysql有很多优势,建议大家使用,如果没有了解,可以查看mysql的基础教程: mysqli连接数据库 和 mysqli预处理prepare使用 。不仅如此,mysqli更是支持多查询特性,看下面这段php代码: 代码如下: &lt;?...

    php_mysqli.zip

    php_mysqli.zip php_mysqli.zip php_mysqli.zip

    php封装的mysqli完整类库

    介绍php封装的mysqli类,结合实例形式分析了php针对mysqli操作类的定义与使用技巧,掌握满足单例模式的必要条件 (1)私有的构造方法-为了防止在类外使用new关键字实例化对象 (2)私有的成员属性-为了防止在类外引入这个...

    php结合mysql与mysqli扩展处理事务的方法

    本文实例讲述了php结合mysql与mysqli扩展处理事务的方法。分享给大家供大家参考,具体如下: 以下只是展示如何应用,具体用的时候要加上判断,如果都执行成功则提交,否则回滚 看前先分清mysqli与mysql扩展是不一样...

    如何判断php mysqli扩展类是否开启

    php高级版本都支持mysqli扩展类,但是默认情况下,mysqli扩展类是没有开启的,本文章向大家介绍php如何判断mysqli扩展类是否开启,需要的朋友可以参考一下

    php mysqli查询语句返回值类型实例分析

    主要介绍了php mysqli查询语句返回值类型,结合实例形式分析了php+mysqli常用的查询、插入语句的使用与返回值类型,需要的朋友可以参考下

    兄弟连MySQL数据库视频教程(18集)

    教程名称:兄弟连MySQL数据库视频教程(18集)课程目录:【】1.MySQL数据库管理系统概述【】10.PHP设计完美分页类【】11.PHP的mysqli扩展库操作MySQL数据库【】12.使用PHP中mysqli扩展处理结果集【】13.使用PHP的...

Global site tag (gtag.js) - Google Analytics