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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
php 正则表达式小结
Aug 31 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Jan 27 PHP
基于PHP+Ajax实现表单验证的详解
Jun 25 PHP
php获取url参数方法总结
Nov 13 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
PHP 将数组打乱 shuffle函数的用法及简单实例
Jun 17 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
Mar 31 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
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
分享一个漂亮的php验证码类
2016/09/29 PHP
smarty模板数学运算示例
2016/12/11 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
VBS通过WMI监视注册表变动的代码
2011/10/27 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
javascript实现网页子页面遍历回调的方法(涉及 window.frames、递归函数、函数上下文)
2015/07/27 Javascript
15个常用的jquery代码片段
2015/12/19 Javascript
浅析JS运动
2015/12/28 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
解决layui数据表格table的横向滚动条显示问题
2019/09/04 Javascript
vue脚手架项目创建步骤详解
2021/03/02 Vue.js
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
Python模块学习 datetime介绍
2012/08/27 Python
python k-近邻算法实例分享
2014/06/11 Python
Python中的Classes和Metaclasses详解
2015/04/02 Python
浅谈django中的认证与登录
2016/10/31 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Python 字符串类型列表转换成真正列表类型过程解析
2019/08/26 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
Python 自由定制表格的实现示例
2020/03/20 Python
python 动态绘制爱心的示例
2020/09/27 Python
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
关于环保的建议书400字
2014/03/12 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
《我的长生果》教学反思
2016/02/20 职场文书