php学习笔记-连接操作mysq数据库(基础)-day08

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。

php中常用的mysql操作函数

首先,放一段链接 https://www.php.net/manual/zh/function.mysql-connect,mysql_connect及其诸多函数已经自php5.5.0废弃,然后逐步移除中,使用 mysqli 或者 pdo_mysql中的函数来替代。
在这里插入图片描述

1.连接mysql服务器

mysqli_connect()

语法格式:mysqli_connect ( string hostname,string username, string password,string database,int port,string socket): mysqli | false
函数功能:如果成功链接mysql服务器,则返回一个与mysql服务器连接的标识 mysqli ,如果连接失败则返回 false。

在这里插入代码片
AI 代码解读

2.设置数据库字符集 和 发送sql

mysqli_query() 函数 可以用来设置数据库字符集。

语法格式:mysqli_query(mysqli $mysqli,string "set names 字符集"); (字符集是 gbk | utf8 )
函数功能:将mysql的字符集设置为指定的字符集。

tip:mysqli_query() 函数 完整的参数如下:
mysqli_query(mysqli $mysql, string $query, int $result_mode = MYSQLI_STORE_RESULT): mysqli_result | bool
query 可以是设定字符集或者相应的sql语句(如:select sid from student | insert into xxx.... | update xxxx set.... | delete from ..... ),如果执行的查询sql成功,则返回一个结果集 mysqli_result。

3.关闭mysql服务器连接

mysqli_close();

语法格式:bool mysqli_close(mysqli $mysqli )
函数功能:关闭mysql服务器连接

4.选择要操作的数据库

mysqli_select_db()

语法格式:bool mysqli_select_db( mysqli $mysqli , string database_name)
函数功能:设置当前想要操纵的数据库

5.结果集释放

mysqli_free_result()

语法格式:mysqli_free_result ( mysqli_result $result)
函数功能:释放结果集所占用的资源,执行成功返回true,失败返回false.

6.获取sql执行后影响的表记录行数

mysqli_affected_rows()

语法格式:mysqli_affected_rows(mysqli $mysql): int|string
函数功能:获取上一个 MySQL 操作中受影响的行数

mysql_insert_id()

语法格式:mysql_insert_id(resource $link_identifier = ?): int
函数功能:取得上一步 INSERT 操作产生的 ID

mysql_insert_id() 返回给定的 link_identifier 中上一步 INSERT 查询中产生的 AUTO_INCREMENT 的 ID 号。如果没有指定 link_identifier,则使用上一个打开的连接。

如果上一查询没有产生 AUTO_INCREMENT 的值,则 mysql_insert_id() 返回 0。如果需要保存该值以后使用,要确保在产生了值的查询之后立即调用 mysql_insert_id()。

7.遍历结果集中的数据

mysqli_fetch_row ( )

语法格式:mysql_fetch_row(resource $result): array
函数功能:返回根据所取得的行生成的数组,如果没有更多行则返回 false。
mysql_fetch_row() 从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
依次调用 mysql_fetch_row() 将返回结果集中的下一行,如果没有更多行则返回 false。

mysqli_fetch_array ()

语法格式:mysql_fetch_array(resource $result, int $result_type = ?): array
函数功能:从结果集中取得一行作为关联数组
参数:
resource 型的结果集。此结果集来自对 msql_query() 的调用。

result_type
接受以下常量值: MSQL_ASSOC,MSQL_NUM 和 MSQL_BOTH,默认为 MSQL_BOTH。如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样)。

小练习

书籍查询并且输出结果集数据

创建数据表

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `bookName` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
  `bookPrice` decimal(10, 2) NOT NULL,
  `author` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of book
-- ----------------------------
INSERT INTO `book` VALUES (1, '平凡的世界', 59.00, '路遥');
INSERT INTO `book` VALUES (2, '三体', 99.00, '刘慈欣');
INSERT INTO `book` VALUES (3, '人间失格', 44.00, '太宰治');
INSERT INTO `book` VALUES (4, '白夜行', 38.00, '东野圭吾');

SET FOREIGN_KEY_CHECKS = 1;
AI 代码解读

创建testDB.php

用来连接数据库和执行sql,以及数据显示输出

<?php

// php 连接 mysql

// 1.resource mysql_connect (string hostname,string username,string password)

// 连接成功则返回一个连接标识,连接失败则返回一个 false

$hostname = "localhost"; // mysql服务器名
$username = "root"; // 账号
$password = "root"; // 密码

// 连接数据库
$conn = @mysqli_connect($hostname,$username,$password,) or die("连接数据库失败");

// 编写sql 通过sql指定要访问的数据库和表
$sql1 = "select * from phpdemo.book";

// 设定编码
mysqli_query($conn,"set names utf-8");
// 操纵数据库,查询一下信息
$rs = mysqli_query($conn,$sql1);


// 将结果集抽离出来,使用最常用的表格


echo "<table>";
echo "<tr><th>id</th><th>书名</th><th>价格</th><th>作者</th></tr>";
while ($row = mysqli_fetch_array($rs)){
   
    echo "<tr>".
            "<td>".$row['id']."</td>".
            "<td>".$row['bookName']."</td>".
            "<td>".$row['bookPrice']."</td>".
            "<td>".$row['author']."</td>".
        "</tr>";
}
echo "</table>";
// 释放结果集内存
mysqli_free_result($rs);



// 关闭数据库连接
mysqli_close($conn);
AI 代码解读

在这里插入图片描述

mysql连接模板

// php操纵mysql数据库的模板
class dataBase{
   

    public $dbConn = null;

     function getConnection()
    {
   

        $hostname = "localhost";
        $username = "root";
        $password = "root";
        $database = "phpdemo";
        global $dbConn;

        if(mysqli_connect($hostname,$username,$password)){
   
            $dbConn = mysqli_connect($hostname,$username,$password);
        }else{
   
            echo "数据库连接失败,请检查主机名,用户名,密码";
            die(mysqli_error());
        }
        mysqli_query($dbConn,"set names utf-8");// 设定字符集编码
        if(mysqli_select_db($dbConn,$database)){
   
            echo "连接成功";
        }else{
   
            echo "连接失败,检查数据库名是否正常";
            die(mysqli_error());
        }
    }


    function closeConnection():void
    {
   
        global  $dbConn;
        if($dbConn){
   
            mysqli_close($dbConn) or die (mysqli_error($dbConn));
        }
    }
}
AI 代码解读

tip:“这里对php中的类还没有详细的学过,所以模板还可能有不足的地方”


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
78
分享
相关文章
Unity连接Mysql数据库 增 删 改 查
在 Unity 中连接 MySQL 数据库,需使用 MySQL Connector/NET 作为数据库连接驱动,通过提供服务器地址、端口、用户名和密码等信息建立 TCP/IP 连接。代码示例展示了如何创建连接对象并执行增删改查操作,确保数据交互的实现。测试代码中,通过 `MySqlConnection` 类连接数据库,并使用 `MySqlCommand` 执行 SQL 语句,实现数据的查询、插入、删除和更新功能。
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
47 25
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
57 2
ADO.NET连接到南大通用GBase 8s数据库
ADO.NET连接到南大通用GBase 8s数据库
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
php连接数据库
要使用PHP连接PolarDB或MongoDB数据库,需先准备连接信息,并编写相应代码。对于PolarDB,需设置主机地址、端口、数据库名及凭据,使用`pg_connect`函数建立连接;而对于MongoDB副本集,需安装MongoDB PHP驱动,通过`MongoDB\Client`连接指定的副本集实例。请确保替换示例代码中的占位符为实际值,并正确配置副本集名称和主机信息。更多详细信息与示例代码,请参考相关链接。
183 72

热门文章

最新文章