PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)


Posted in PHP onSeptember 11, 2016

本文实例讲述了PHP入门教程之使用Mysqli操作数据库的方法。分享给大家供大家参考,具体如下:

Demo1.php

<?php
  //使用 mysqli 对象操作数据库
  //创建 mysqli 对象(资源句柄)
  $_mysqli = new mysqli();
  //连接数据库 1.主机名(ip) 2.账户 3.密码 4.数据库
  //mysqli_connect 函数 == $_mysqli -> connect();
  $_mysqli -> connect('localhost','root','123456','guest');
  //断开 MySQL mysqli_close() == $_mysqli -> close();
  $_mysqli -> close();
?>

Demo2.php

<?php
  //不用 connect ,直接使用构造方法
  $_mysqli = new mysqli('localhost','root','123456','guest');
  //单独选择一个数据库
  //这里选择的数据库会替代上面的数据库
  //为了避免这些麻烦,尽量不用去单独指向了
  //$_mysqli -> select_db('school');
  $_mysqli -> close();
?>

Demo3.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  //连接 mysql
  //当你参数出现错误,导致连接错误的时候,
  //$_mysqli 这个对象就没有创建成功,也就是说,没有资源句柄的功能
  //就是没有调用 mysqli 下的方法和属性的能力了
  @$_mysqli = new mysqli('localhost','root','123456','guest');
  //为什么要用函数去捕捉呢?
  //为什么不用面向对象的方式去捕捉呢?
  if(mysqli_connect_errno()){
    echo '数据库连接出现了错误,错误的信息是:'.mysqli_connect_error();
    exit();
  }
  $_mysqli->close();
?>

Demo4.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  //连接 mysql
  //当你参数出现错误,导致连接错误的时候,
  //$_mysqli 这个对象就没有创建成功,也就是说,没有资源句柄的功能
  //就是没有调用 mysqli 下的方法和属性的能力了
  @$_mysqli = new mysqli('localhost','root','123456','guest');
  //为什么要用函数去捕捉呢?
  //为什么不用面向对象的方式去捕捉呢?
  if(mysqli_connect_errno()){
    echo '数据库连接出现了错误,错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //$_mysqli -> select_db('fsdfd');
  //数据库操作时发生的错误
  if($_mysqli -> errno){
    echo '数据库操作错误:'.$_mysqli -> error;
  }
  $_mysqli->close();
?>

Demo5.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if(mysqli_connect_errno()){
    echo '数据库连接出现了错误,错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli -> set_charset('utf8');
  //创建一句 SQL ,获取数据库的表的数据
  $_sql = "SELECT * FROM tg_user";
  //执行 SQL 语句,把结果集赋给 $_result
  $_result = $_mysqli -> query($_sql);
  //var_dump($_result); //object(mysqli_result)#2 (0) { }
  //通过结果集,我要取得第一行数据
  //fetch_row();是返回的一个数组,里面是第一条数据的集合
  print_r( $_result -> fetch_row());
  //运行一次,指针下移一条
  print_r( $_result -> fetch_row());
  //销毁结果集
  $_result -> free();
  $_mysqli->close();
?>

Demo6.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建一句SQL,获取数据库的表的数据
  $_sql = "SELECT * FROM tg_user";
  //创建一个结果集
  $_result = $_mysqli->query($_sql);
  //使用索引数组取值
  //print_r($_result->fetch_row());
  $_row = $_result->fetch_row();
  echo $_row[3];
  //遍历,下标很难记[3]
  while (!!$_row = $_result->fetch_row()) {
    echo $_row[3].'<br />';
  }
  $_mysqli->close();
?>

Demo7.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建一句SQL,获取数据库的表的数据
  $_sql = "SELECT * FROM tg_user";
  //创建一个结果集
  $_result = $_mysqli->query($_sql);
  //使用关联数组取值
  //print_r($_result->fetch_assoc());
  $_assoc = $_result->fetch_assoc();
  echo $_assoc['tg_username'];
  //遍历
  while (!!$_assoc = $_result->fetch_assoc()) {
    echo $_assoc['tg_username'].'<br />';
  }
  $_mysqli->close();
?>

Demo8.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建一句SQL,获取数据库的表的数据
  $_sql = "SELECT * FROM tg_user";
  //创建一个结果集
  $_result = $_mysqli->query($_sql);
  //使用索引+关联数组取值
  //print_r($_result->fetch_array());
  $_array = $_result->fetch_array();
  echo $_array[3];
  echo $_array['tg_username'];
  //遍历.....
  $_mysqli->close();
?>

Demo9.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建一句SQL,获取数据库的表的数据
  $_sql = "SELECT * FROM tg_user";
  //创建一个结果集
  $_result = $_mysqli->query($_sql);
  //使用OOP的方法object
  //print_r($_result->fetch_object());
  echo $_result->fetch_object()->tg_username;
  //使用OOP遍历
  while (!!$_object = $_result->fetch_object()) {
    echo $_object->tg_username.'<br />';
  }
  $_mysqli->close();
?>

Demo10.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建一句SQL,获取数据库的表的数据
  $_sql = "SELECT * FROM tg_user limit 0,10";
  //创建一个结果集
  $_result = $_mysqli->query($_sql);
  //我要看下我选择了多少行
  echo $_result->num_rows;
  //我影响了多少行呢
  echo $_mysqli->affected_rows;
  $_mysqli->close();
?>

Demo11.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建一句SQL,获取数据库的表的数据
  $_sql = "UPDATE tg_user SET tg_username='一站式建网站' WHERE tg_id=5";
  //创建一个结果集
  $_result = $_mysqli->query($_sql);
  //我要看下我选择了多少行
  echo $_result->num_rows;
  echo '|';
  //我影响了多少行呢
  echo $_mysqli->affected_rows;
  $_mysqli->close();
?>

Demo12.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建一句SQL,获取数据库的表的数据
  $_sql = "SELECT * FROM tg_user";
  //创建一个结果集
  $_result = $_mysqli->query($_sql);
  //求出表中有多少个字段
  echo $_result->field_count;
  //获取字段的名字
// $_field = $_result->fetch_field();
// echo $_field->name;
// $_field = $_result->fetch_field();
// echo $_field->name;
//
// while (!!$_field = $_result->fetch_field()) {
//   echo $_field->name.'<br />';
// }
  //一次性取得所有的字段
  $_fields = $_result->fetch_fields();
  //echo $_fields[0]->name;
  foreach ($_fields as $_field) {
    echo $_field->name.'<br />';
  }
  $_mysqli->close();
?>

Demo13.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建一句SQL,获取数据库的表的数据
  $_sql = "SELECT * FROM tg_user";
  //创建一个结果集
  $_result = $_mysqli->query($_sql);
  //移动数据指针
  $_result->data_seek(9);
  $_row = $_result->fetch_row();
  echo $_row[3];
  //移动字段指针
  $_result->field_seek(3);
  $_field = $_result->fetch_field();
  echo $_field->name;
  $_mysqli->close();
?>

Demo14.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建三个修改的SQL语句
  $_sql .= "UPDATE tg_article SET tg_username='喀喀喀' WHERE tg_id=1;";
  $_sql .= "UPDATE tg_flower SET tg_fromuser='喀喀喀' WHERE tg_id=1;";
  $_sql .= "UPDATE tg_friend SET tg_fromuser='喀喀喀' WHERE tg_id=1";
  //使用通知执行的方法
  $_mysqli->multi_query($_sql);
  //普通只能执行sql的方法是:$_mysqli->query($_sql);
  $_mysqli->close();
?>

Demo15.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //创建三条选择语句
  $_sql .= "SELECT * FROM tg_photo;";
  $_sql .= "SELECT * FROM tg_user;";
  $_sql .= "SELECT * FROM tg_friend";
  if ($_mysqli->multi_query($_sql)) {
    //获取当前的结果集
    $_result = $_mysqli->store_result();
    print_r($_result->fetch_row());
    echo '<br />';
    //将结果集的指针移到下一条
    $_mysqli->next_result();
    $_result = $_mysqli->store_result();
    if (!$_result) {
      echo '第二条SQL语句有五!';
      exit();
    }
    print_r($_result->fetch_row());
    echo '<br />';
    $_mysqli->next_result();
    $_result = $_mysqli->store_result();
    if (!$_result) {
      echo '第三条SQL语句有五!';
      exit();
    }
    print_r($_result->fetch_row());
  } else {
    echo '第一条SQL语句有误';
    exit();
  }
  $_mysqli->close();
?>

Demo16.php

<?php
  header ( 'Content-Type:text/html; charset=utf-8;' );
  $_mysqli = new mysqli('localhost','root','123456','testguest');
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset('utf8');
  //设置关闭自动提交(手工提交)
  $_mysqli->autocommit(false);
  //创建两个SQL语句
  $_sql .= "UPDATE tg_flower SET tg_flower=tg_flower-50 WHERE tg_id=1;";
  $_sql .= "UPDATE tg_friend SET tg_state=tg_state+50 WHERE tg_id=1";
  //执行多条SQL语句
  //只要这两条SQL语句都成功了,就手工提交给数据库
  //否则,就回滚,撤销之前的有效操作。
  if ($_mysqli->multi_query($_sql)) {
    //通过影响的行数,来判定SQL语句是否成功执行
    //如果$_success是false说明sql语句有吴,那么就执行回滚,否则就手工提交
    $_success = $_mysqli->affected_rows == 1 ? true : false;
    //下移指针
    $_mysqli->next_result();
    $_success2 = $_mysqli->affected_rows == 1 ? true : false;
    //如果两条都成功的话
    if ($_success && $_success2) {
      //执行手工提交
      $_mysqli->commit();
      echo '完美提交';
    } else {
      //执行回滚,撤销之前的所有操作
      $_mysqli->rollback();
      echo '所有操作归零!';
    }
  } else {
    echo '第一条SQL语句有错误!';
  }
  //再开启自动提交
  $_mysqli->autocommit(true);
  $_mysqli->close();
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php不用正则采集速度探究总结
Mar 24 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
May 25 PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 PHP
PHP 输出URL的快捷方式示例代码
Sep 22 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
php使用PDO操作MySQL数据库实例
Dec 30 PHP
PHP获取远程图片并保存到本地的方法
May 12 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
Feb 11 PHP
详细解读php的命名空间(一)
Feb 21 PHP
php接口实现拖拽排序功能
Apr 23 PHP
PHP+Ajax实现的检测用户名功能简单示例
Feb 12 PHP
浅谈laravel aliases别名的原理
Oct 24 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
Sep 11 #PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 #PHP
PHP入门教程之PHP操作MySQL的方法分析
Sep 11 #PHP
PHP入门教程之图像处理技巧分析
Sep 11 #PHP
PHP函数引用返回的实例详解
Sep 11 #PHP
PHP中in_array函数使用的问题与解决办法
Sep 11 #PHP
详解PHP中array_rand函数的使用方法
Sep 11 #PHP
You might like
php格式化电话号码的方法
2015/04/24 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
基于datagrid框架的查询
2013/04/08 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
动态添加删除表格行的js实现代码
2014/02/28 Javascript
js使用正则实现ReplaceAll全部替换的方法
2014/08/22 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
jquery自定义插件——window的实现【示例代码】
2016/05/06 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
python实现SMTP邮件发送功能
2020/06/16 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
python输出结果刷新及进度条的实现操作
2020/07/13 Python
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
毕业生自荐信的主要内容
2013/10/29 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
信用社员工先进事迹材料
2014/02/04 职场文书
工作疏忽、懈怠的检讨书
2014/09/11 职场文书
党员先进事迹材料
2014/12/19 职场文书
初中家长评语和期望
2014/12/26 职场文书
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
linux中nohup和后台运行进程查看及终止
2021/06/24 Python