【PHP程序设计(高阶版)】——PHP操作MySQL教程
作者:mmseoamin日期:2024-04-27

【PHP程序设计(高阶版)】——PHP操作MySQL教程,在这里插入图片描述,第1张


👨‍💻个人主页:@开发者-曼亿点

👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

👨‍💻 本文由 曼亿点 原创

👨‍💻 收录于专栏:PHP程序开发

🅰

【PHP程序设计(高阶版)】——PHP操作MySQL教程,请添加图片描述,第2张


文章目录

    • 🅰
    • 前言
    • 🎶(1) MySQLi(面向对象过程)
      • 🐤1.建立数据库(mysqli_connect)
      • 🐤2.执行SQL(mysqli_query)
      • 🎶(2) 执行SQL(mysqli_queryM)
        • 🐤1.处理返回结果
        • 🐤2.关闭连接
        • 🎶(3)MySQLi(面向对象)
          • 🐤1.创建连接
          • 🐤2.执行SQL
          • 🐤3.处理返回结果
          • 🐤4.关闭连接
            • 结束语🥇

              前言

                PHP提供了 MySQL扩展、MySQLi扩展和PDO(PHP Data 0bjects)三种方式与MSQL数据库交互。在互联网上很多资料使用的是 MySQL扩展,但是PHP7已不再女持MySQL扩展函数,因此本任务使用MySQLi扩展和PDO来操作MySQL数据库,其中MySOL扩展又分为面向过程方式和面向对象方式。那么在实际应用中应该选择哪种方式呢?建议熟悉哪个就用哪个。MySQLi和PDO有各自的优势,具体如下:

                ① PDO 适合多种流行的数据库。

                ② MySOLi 只适合 MYSOL 数据库,

                所以,如果项目需要在多种数据库中切换,建议使用PDO,这样只需要修改连接字符串和部分查询语句即可。使用MVSOL,如果数据库不同,需要重新编写所有代码。同时,MvSOLi和 PDO 都是面向对象,但 MySOLi 还提供了面向过程的 API接口。

              PHP与数据库交互主要有以下四个步骤:

                ①创建连接:连接 MYSOL服务器中的数据库。

                ②执行 SOL:编写 SOL语句,并执行 SQL语句,得到返回结果。

                ③处理返回结果。

                ④释放结果集,关闭数据库连接。


              🎶(1) MySQLi(面向对象过程)


              🐤1.建立数据库(mysqli_connect)

              mydsqli_connect函数创建一个到MySQL数据库的连接,其语法格式如下:

              mysqli_connect(host ,username ,password,dbname,port);

              函数参数说明如下:

                ①host :指要连接的数据库的主机名和IP地址,如果是本地可以使用localhost或者127.0.0.1。

                ②username :指登录数据库的用户名。

                ③password:指登录数据库的密码。

                ④dbname:指要连接的数据库。

                ⑤port:指数据库的端口号,默认值为3306,可以不写。

              如果连接成功,函数返回一个代表到MySQL数据库的连接对象;如果连接失败,函数返回false以及警告或错误提示。下面案例一会显示会显示连接数据库成功和失败的信息。

              案例一:创建数据库的连接:

              ";
              var_dump($connl);
              echo"
              ----------------------------------------------------------------
              "; echo "创建数据库shop连接,使用错误密码"; $conn2=mysqli_connect('localhost','root','root','shop'); if(!$conn2)//连接失败 { echo mysqli_connect_error(); } echo"
              ----------------------------------------------------------------
              "; echo "创建数据库shop连接,使用错误数据库名称"; $conn3=mysqli_connect('localhost','root1','123456','shop'); if(!$conn3)//连接失败 { echo mysqli_connect_error(); } ?>

              运行效果展示:

              【PHP程序设计(高阶版)】——PHP操作MySQL教程,在这里插入图片描述,第3张

              🐤2.执行SQL(mysqli_query)

              执行SQL包括两个步骤,一遍写SQL语句,一是调用mysqli_query函数执行SQL语句:

              mysqli_query(’ connection’,‘query’,‘resultmode’)

              函数参数说明如下:

                ①connection:必写,指已连接的数据库。

                ②query:必写,指要查询的字段,即SQL语句。

                ③resultmode:可以不写,一个常数,默认值是MYSQLI_ASSOC。

                针对select语句查询,将返回一个结果集对象(空表也返回一个结果集对象),如果失败,则返回false。针对更新(增加,修改,删除)操作如果成功,返回true,或者返回false。案例二显示执行SQL语句成功和失败的信息。

              案例二:执行SQL语句:

              ";
              var_dump($rs);
              //增加的操作
              $sql="insert into goods(names,price,img) values('华为导弹','3000','images/3.jpg')";
              $rs=mysqli_query($conn,$sql);
              echo"
              打印增加数据成功后的返回的结果
              "; var_dump($rs); //增加的操作,设置主键id的冲突 $sql="insert into goods(names,price,img) values(3,'华为导弹','3000','images/3.jpg')"; $rs=mysqli_query($conn,$sql); echo"
              打印增加数据成功后的返回的结果
              "; var_dump($rs); ?>

              运行效果展示:

              【PHP程序设计(高阶版)】——PHP操作MySQL教程,在这里插入图片描述,第4张


              🎶(2) 执行SQL(mysqli_queryM)


              🐤1.处理返回结果

                在处理数据库返回的结果中存在两种形式:一种是执行查询语句返回的结果集对象:一种是更新操作(增加、删除、修改)返回的布尔类型。这里仅介绍如何处理返回的结果集对象,至于更新操作返回的布尔类型(影响行数),与一般的判断操作类似,这里不做过多描述。

                MySQL 扩展提供 mysqli_fetch_all(result,resultype)、mysqli_fetch_row(result)、 mysqlifetch_assoc(result)、mysqli _fetch_array(result,resulttype)mysqli_fetch_objeet(result)mysqli_num_rows(result)等函数用于操作结果集。上面的方法都要传入由 mysqli_query 执行 SQL 查询语句返回的结果集。函数执行区别如下:

                (1)mysqli_fetch_all:函数从结果集中取得所有行作为数组,默认返回索引数组即返回的是一个二维数组,下标都是数字。如果想要返回关联数字,即键名为数据库表中的字段名,需要设置第二个参数为 MYSOLI_ASSOC。

              案例三:mysqli _fetchz_all函数

              默认返回索引数组
              "; var_dump($goods); $rs=mysqli_query($conn,$sql); $goods=mysqli_fetch_all($rs,MYSQLI_ASSOC); echo"
              设置MYSQLI_ASSOC,返回关联数组
              "; var_dump($goods); ?>

              运行效果展示:

              【PHP程序设计(高阶版)】——PHP操作MySQL教程,在这里插入图片描述,第5张

              🐤2.关闭连接

                关闭数据库之前,建议先释放结果集资源,否则结果集将会一直驻留在内存中。释放结果集的函数如下:

              mysql_free_result(result );

                释放结果集后,不能再访问结果集对象,否则程序将会报错。函数mysql_free_result无返回值。

              关闭连接的函数如下:

              mysql_close( connection);

                如果关闭成功,返回值为true,如果关闭失败,则返回值false。

                虽然先关闭连接再释放结果集,在php中都可以,但是为了养成一个好习惯,建议先关闭连接再去释放结果集。


              🎶(3)MySQLi(面向对象)


              🐤1.创建连接

                与面向过程方式创建连接类似,如果连接成功,new mysql()将返回一个代表到MySQL数据库的连接的对象:如果连接失败,函数返回false,并给出警告或错误提示。

              案例四:创建数据库连接

              connect_error){
              	echo "连接失败:".$conn->connect_error;
              }else{
              	var_dump($conn);
              }
              echo "
              ----------------------------------------
              "; //创建数据库shop连接,密码错误 $conn=new mysqli('localhost','root','root','shop'); //检测连接,如果创建连接成功,connect_error为null //如果创建失败connect_error保存错误提示 if($conn->connect_error){ echo "连接失败:".$conn->connect_error; }else{ var_dump($conn); } echo "
              ----------------------------------------
              "; //创建数据库shop连接,密码和数据库错误 $conn=new mysqli('localhost1','root','root','shop'); //检测连接,如果创建连接成功,connect_error为null //如果创建失败connect_error保存错误提示 if($conn->connect_error){ echo "连接失败:".$conn->connect_error; }else{ var_dump($conn); } ?>

              运行结果的显示:

              【PHP程序设计(高阶版)】——PHP操作MySQL教程,在这里插入图片描述,第6张

              🐤2.执行SQL

                执行SQL包括两个步骤:一个是编写SQL语句;二是调用连接对象中的query方法执行SQL语句: c o n n − > q u e r y ( conn->query( conn−>query(sqrl);

                针对select语句查询,将返回一个结果集对象(空表也返回一个结果集对象),如果失败,则返回false。针对更新(增加,修改和删除)操作,如果成功返回true。

              案例五:执行SQL语句

              connect_error){
              	exit( "连接失败:".$conn->connect_error);
              }
              $sql="select * from goods";
              //执行查询sql语句
              $rs=$conn->query($sql);
              echo "
              打印查询成功后的返回结果
              "; var_dump($rs); //增加操作 $sql="insert into goods(names,price,img) values('华为路由','50','imgages/4.jpg')"; $rs=$conn->query($sql); echo "
              打印增加数据成功后的返回结果
              "; var_dump($rs); //增加失败操作 $sql="insert into goods(names,price,img) values(1,'华为路由','50','imgages/4.jpg')"; $rs=$conn->query($sql); echo "
              打印增加数据失败后的返回结果
              "; var_dump($rs); ?>

              运行结果:

              【PHP程序设计(高阶版)】——PHP操作MySQL教程,在这里插入图片描述,第7张

              🐤3.处理返回结果

                MySQL面向对象结果集类处理方法与面向过程类似,常用方法表:

              方法返回结果
              fetch_all (resulttype)right-aligned 文本居右
              fetch_array (resulttype)以一个关联数组、索引数组、或者两者皆有的方式返回一行结果
              fetch_object ( )以对象方式返回一行结果
              fetch_row ( )以索引数组方式返回一行结果
              fetch_assoc ( )以关联数组方式返回一行结果

              本知识点仅仅以fetch_all方式举列。

              案列六:

              connect_error){
              	exit( "连接失败:".$conn->connect_error);
              }
              $sql="select * from goods";
              //执行查询sql语句
              $rs=$conn->query($sql);
              $goods=$rs->fetch_all(MYSQLI_ASSOC);
              var_dump($goods);
              ?>
              

              运行结果:

              【PHP程序设计(高阶版)】——PHP操作MySQL教程,在这里插入图片描述,第8张

              🐤4.关闭连接

                关闭数据库之前,建议先释放结果集资源,否则结果集将会一直驻留在内存中。释放结果集的函数如下:

              $rs->free( );

                释放结果集后,不能再访问结果集对象,否则程序将会报错,方法free无返回值。

              关闭连接的方法如下:

              $conn->close();

                如果关闭成功将会返回true,如果关闭失败将会返回false。

                虽然先关闭连接再释放结果集,在php中都可以,但是为了养成一个好习惯,建议先关闭连接再去释放结果集。

              结束语🥇

              以上就是PHP程序设计

              持续更新PHP程序设计教程,欢迎大家订阅系列专栏🔥PHP程序开发你们的支持就是曼亿点创作的动力💖💖💖

              【PHP程序设计(高阶版)】——PHP操作MySQL教程,请添加图片描述,第9张