PHP 原生操作 Mysql

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: PHP 原生操作 Mysql

<?php
// 主机名
$db_host = "localhost";
// 端口号
$db_port = "3306";
// 用户名
$db_user = "root";
// 密码
$db_pass = "123456";
// 数据库名
$db_name = "test";
// 字符集
$db_charset = "utf8";
// 1、连接 Mysql 服务器,如果连接成功返回 Mysqli 连接对象,如果失败,则返回 false
if (!$link = @mysqli_connect($db_host.":".$db_port, $db_user, $db_pass)) {
  echo "<h2>PHP连接Mysql服务器失败!</h2>";
  // 输出错误信息
  echo "系统错误信息:".mysqli_connect_error();
  // 终止程序 exit() 或 die()
  die();
}
echo "<h2>PHP连接Mysql服务器成功!</h2>";
// 2、选择数据库,成功返回 true, 失败返回 false
if (!mysqli_select_db($link, $db_name)) {
  echo "<h2>选择{$db_name}失败</h2>";
  // 终止程序 exit() 或 die()
  die();
}
echo "<h2>选择{$db_name}成功</h2>";
// 3、设置字符集,成功返回 true, 失败返回 false,一般都是成功,没必要判断
mysqli_set_charset($link, $db_charset);
// 4、执行 sql 语句,增删改查
$sql = "select * from user";
// 说明: mysqli_query() 仅对 select、show、describe 语句返回一个 mysqli result 结果集对象,如果查询执行不正确则返回 false。对于其它类型的SQL语句,mysqli_query() 在执行成功时返回 true, 出错时返回 false。非 false 的返回值意味着查询是合法的并能够被服务器执行。
// 注意: 查询字符串不应以分号结束,和命令行模式下有区别。
$result = mysqli_query($link, $sql);
// 输出这种结果集,但是想要获得数据需要用别的方式: object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(3) ["lengths"]=> NULL ["num_rows"]=> int(4) ["type"]=> int(0) }
var_dump($result);
    // 1)、mysqli_fetch_row 从结果集中获取一行数据,并作为枚举数组返回,如果没有更多行则返回 false 。
    $arr = mysqli_fetch_row($result);
    print_r($arr); // Array ( [0] => 1 [1] => name1 [2] => 18 )
    // 再次调用它会自己判断获取下一行数据
    $arr = mysqli_fetch_row($result);
    print_r($arr); // Array ( [0] => 2 [1] => name2 [2] => 15 )
    // 可以直接 while 取出所有数据
    while($arr = mysqli_fetch_row($result)) {
      print_r($arr);
    }
    // 2)、(常用方式) mysqli_fetch_assoc 从结果集中获取一行数据,并作为关联数组返回,如果没有更多行则返回 false 。
    $arr = mysqli_fetch_assoc($result);
    print_r($arr); // Array ( [id] => 1 [name] => name1 [age] => 18 )
    // 再次调用它会自己判断获取下一行数据
    $arr = mysqli_fetch_assoc($result);
    print_r($arr); // Array ( [id] => 2 [name] => name2 [age] => 15 )
    // 可以直接 while 取出所有数据
    while($arr = mysqli_fetch_assoc($result)) {
      print_r($arr);
    }
    // 3)、mysqli_fetch_array 上面 1 跟 2 的结合体,根据传入不同 $result_type 值获取得到枚举数组或关联数组,如果没有更多行则返回 false 。
    // $result_type: MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
    $arr = mysqli_fetch_array($result);
    print_r($arr); // Array ( [0] => 1 [id] => 1 [1] => name1 [name] => name1 [2] => 18 [age] => 18 )
    $arr = mysqli_fetch_array($result, MYSQLI_ASSOC);
    print_r($arr); // Array ( [id] => 2 [name] => name2 [age] => 15 ) 
    $arr = mysqli_fetch_array($result, MYSQLI_NUM);
    print_r($arr); // Array ( [0] => 3 [1] => name3 [2] => 20 )
    // 4)、mysqli_fetch_all 上面 3 的升级版,从结果集中获取所有行数据作为关联数组、枚举数组、或二者兼有。
    // $result_type: MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引,默认)
    $arrs = mysqli_fetch_all($result);
    print_r($arrs); // Array ( [0] => Array ( [0] => 1 [1] => name1 [2] => 18 ) [1] => Array ( [0] => 2 [1] => name2 [2] => 15 ) )
    $arrs = mysqli_fetch_all($result, MYSQLI_ASSOC);
    print_r($arrs); // Array ( [0] => Array ( [id] => 1 [name] => name1 [age] => 18 ) [1] => Array ( [id] => 2 [name] => name2 [age] => 15 ) )
    // 4)、mysqli_num_rows 获取结果集中行数量,此命令仅对 select 命令语句有效。
    $count = mysqli_num_rows($result);
    print_r($count); // 2
    // 5)、mysqli_affected_rows 取得前一次 Mysql 操作所影响的记录行数。
    // 说明: 取得最近一次与 $link 关联的 select、insert、update、delete 操作所影响的记录行数。
    // 注意: 如果最近一次查询失败,函数返回-1,当使用 update 查询,Mysql 不会将原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录数才会被返回。
    $count = mysqli_affected_rows($link);
    print_r($count); // 2
// 5、手动销毁结果集变量,方便服务器资源循环利用,注意:如果结果集是 Bool 类型是不能进行销毁的,必须为 mysqli result 结果集对象才可以进行销毁,这里可以做下判断
// mysqli_free_result($result);
// 6、如果使用完毕之后,需要关闭数据库连接,以免占用资源
mysqli_close($link);
?>

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
4天前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发深度解析####
本文作为技术性文章,深入探讨了PHP与MySQL结合在动态网站开发中的应用实践,从环境搭建到具体案例实现,旨在为开发者提供一套详尽的实战指南。不同于常规摘要仅概述内容,本文将以“手把手”的教学方式,引导读者逐步构建一个功能完备的动态网站,涵盖前端用户界面设计、后端逻辑处理及数据库高效管理等关键环节,确保读者能够全面掌握PHP与MySQL在动态网站开发中的精髓。 ####
|
5天前
|
关系型数据库 MySQL PHP
PHP与MySQL动态网站开发实战指南####
本文深入探讨了PHP与MySQL在动态网站开发中的应用实践,通过具体案例解析如何高效结合这两大技术构建数据驱动的Web应用。文章将涵盖环境搭建、基础语法回顾、数据库设计与操作、用户注册与登录系统实现等关键步骤,旨在为开发者提供一个从零到一的项目实战路径,展示PHP与MySQL协同工作的强大能力。 ####
|
15天前
|
前端开发 PHP 数据库
原生PHP网站源码
原生PHP网站通常指的是使用纯PHP代码编写的网站,没有使用框架或者类库来简化开发流程。
23 1
|
24天前
|
SQL 关系型数据库 MySQL
PHP与MySQL协同工作的艺术:开发高效动态网站
在这个后端技术迅速迭代的时代,PHP和MySQL的组合仍然是创建动态网站和应用的主流选择之一。本文将带领读者深入理解PHP后端逻辑与MySQL数据库之间的协同工作方式,包括数据的检索、插入、更新和删除操作。文章将通过一系列实用的示例和最佳实践,揭示如何充分利用这两种技术的优势,构建高效、安全且易于维护的动态网站。
|
2月前
|
Web App开发 PHP iOS开发
易优CMS PHP原生标签调用
这段代码实现了一个自动化工具,用于从指定的漫画网站下载章节内容,并将其转换为PDF格式。它首先通过用户输入的链接获取网页信息,然后根据用户的选择下载整个章节或特定章节的图片,并保存到本地文件夹中。下载完成后,工具会将这些图片合并成一个PDF文件,并添加书签以便于浏览。此外,代码还包含了异常处理机制,确保在网络不稳定时能够重试下载。
29 4
|
1月前
|
缓存 NoSQL 数据处理
原生php实现redis缓存配置和使用方法
通过上述步骤,你可以在PHP项目中配置并使用Redis作为高性能的缓存解决方案。合理利用Redis的各种数据结构和特性,可以有效提升应用的响应速度和数据处理效率。记得在实际应用中根据具体需求选择合适的缓存策略,如设置合理的过期时间,以避免内存过度消耗。
45 0
|
24天前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
57 3
Mysql(4)—数据库索引
|
10天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
46 2
|
13天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
54 4