搜索
首页后端开发php教程PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)

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

Demo1.php

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

   

Demo2.php

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

   

Demo3.php

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

   

Demo4.php

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

   

Demo5.php

<?php
  header ( &#39;Content-Type:text/html; charset=utf-8;&#39; );
  $_mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;,&#39;testguest&#39;);
  //数据库连接时发生的错误
  if(mysqli_connect_errno()){
    echo &#39;数据库连接出现了错误,错误的信息是:&#39;.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli -> set_charset(&#39;utf8&#39;);
  //创建一句 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 ( &#39;Content-Type:text/html; charset=utf-8;&#39; );
  $_mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;,&#39;testguest&#39;);
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo &#39;数据库连接出现了错误.错误的信息是:&#39;.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset(&#39;utf8&#39;);
  //创建一句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].&#39;<br />&#39;;
  }
  $_mysqli->close();
?>

   

Demo7.php

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

   

Demo8.php

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

   

Demo9.php

<?php
  header ( &#39;Content-Type:text/html; charset=utf-8;&#39; );
  $_mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;,&#39;testguest&#39;);
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo &#39;数据库连接出现了错误.错误的信息是:&#39;.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset(&#39;utf8&#39;);
  //创建一句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.&#39;<br />&#39;;
  }
  $_mysqli->close();
?>

   

Demo10.php

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

   

Demo12.php

<?php
  header ( &#39;Content-Type:text/html; charset=utf-8;&#39; );
  $_mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;,&#39;testguest&#39;);
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo &#39;数据库连接出现了错误.错误的信息是:&#39;.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset(&#39;utf8&#39;);
  //创建一句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.&#39;<br />&#39;;
// }
  //一次性取得所有的字段
  $_fields = $_result->fetch_fields();
  //echo $_fields[0]->name;
  foreach ($_fields as $_field) {
    echo $_field->name.&#39;<br />&#39;;
  }
  $_mysqli->close();
?>

   

Demo13.php

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

   

Demo15.php

<?php
  header ( &#39;Content-Type:text/html; charset=utf-8;&#39; );
  $_mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;,&#39;testguest&#39;);
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo &#39;数据库连接出现了错误.错误的信息是:&#39;.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset(&#39;utf8&#39;);
  //创建三条选择语句
  $_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 &#39;<br />&#39;;
    //将结果集的指针移到下一条
    $_mysqli->next_result();
    $_result = $_mysqli->store_result();
    if (!$_result) {
      echo &#39;第二条SQL语句有五!&#39;;
      exit();
    }
    print_r($_result->fetch_row());
    echo &#39;<br />&#39;;
    $_mysqli->next_result();
    $_result = $_mysqli->store_result();
    if (!$_result) {
      echo &#39;第三条SQL语句有五!&#39;;
      exit();
    }
    print_r($_result->fetch_row());
  } else {
    echo &#39;第一条SQL语句有误&#39;;
    exit();
  }
  $_mysqli->close();
?>

   

Demo16.php

<?php
  header ( &#39;Content-Type:text/html; charset=utf-8;&#39; );
  $_mysqli = new mysqli(&#39;localhost&#39;,&#39;root&#39;,&#39;123456&#39;,&#39;testguest&#39;);
  //数据库连接时发生的错误
  if (mysqli_connect_errno()) {
    echo &#39;数据库连接出现了错误.错误的信息是:&#39;.mysqli_connect_error();
    exit();
  }
  //设置一下编码
  $_mysqli->set_charset(&#39;utf8&#39;);
  //设置关闭自动提交(手工提交)
  $_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 &#39;完美提交&#39;;
    } else {
      //执行回滚,撤销之前的所有操作
      $_mysqli->rollback();
      echo &#39;所有操作归零!&#39;;
    }
  } else {
    echo &#39;第一条SQL语句有错误!&#39;;
  }
  //再开启自动提交
  $_mysqli->autocommit(true);
  $_mysqli->close();
?>

   

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

更多PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)相关文章请关注PHP中文网!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在Laravel中使用Flash会话数据在Laravel中使用Flash会话数据Mar 12, 2025 pm 05:08 PM

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

php中的卷曲:如何在REST API中使用PHP卷曲扩展php中的卷曲:如何在REST API中使用PHP卷曲扩展Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

简化的HTTP响应在Laravel测试中模拟了简化的HTTP响应在Laravel测试中模拟了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

PHP记录:PHP日志分析的最佳实践PHP记录:PHP日志分析的最佳实践Mar 10, 2025 pm 02:32 PM

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

在Codecanyon上的12个最佳PHP聊天脚本在Codecanyon上的12个最佳PHP聊天脚本Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

解释PHP中晚期静态结合的概念。解释PHP中晚期静态结合的概念。Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

自定义/扩展框架:如何添加自定义功能。自定义/扩展框架:如何添加自定义功能。Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能