PHP连接MySQL数据库三种实现方法

下面是我为你提供的“PHP连接MySQL数据库三种实现方法”的完整攻略。

PHP连接MySQL数据库三种实现方法

在使用PHP解决一些较为复杂的业务逻辑时,我们通常会用到数据库来存储数据。而连接数据库也成了PHP必须要掌握的技能。今天我们来讲一讲PHP连接MySQL数据库的三种实现方法。

1. 使用mysqli扩展

mysqli是PHP对MySQL官方提供的API做的一个封装,相对于原生的mysql扩展来说,使用起来更加简单和安全。下面是连接MySQL数据库的基本步骤:

1.1 连接MySQL数据库

<?php
$host = 'localhost'; // 数据库主机名
$user = 'root'; // 数据库用户名
$password = ''; // 数据库密码
$dbname = 'testdb'; // 数据库名
$port = 3306; // 数据库端口号,可选

// 创建连接
$conn = new mysqli($host, $user, $password, $dbname, $port);

// 检查连接是否有效
if ($conn->connect_error) {
  die('连接失败:' . $conn->connect_error);
}

echo '连接成功';
?>

1.2 执行SQL语句

<?php
// SQL语句
$sql = "SELECT * FROM users";

// 执行查询
$result = $conn->query($sql);

// 处理查询结果
if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    echo "name: " . $row["name"] . " - email: " . $row["email"] . "<br>";
  }
} else {
  echo "0 结果";
}

// 释放查询结果内存
$result->free_result();
?>

1.3 关闭连接

<?php
// 关闭连接
$conn->close();
echo '连接已关闭';
?>

2. 使用PDO扩展

PDO是PHP对所有数据库进行的一个抽象,使用起来比mysqli扩展更加灵活。下面是连接MySQL数据库的基本步骤:

2.1 连接MySQL数据库

<?php
$host = 'localhost'; // 数据库主机名
$user = 'root'; // 数据库用户名
$password = ''; // 数据库密码
$dbname = 'testdb'; // 数据库名

// 数据库连接
try {
  $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
  $pdo = new PDO($dsn, $user, $password);
  // 开启PDO的异常处理模式
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "连接成功";
} catch (PDOException $e) {
  echo "连接失败:" . $e->getMessage();
}
?>

2.2 执行SQL语句

<?php
// SQL语句
$sql = "SELECT * FROM users";

// 执行查询
$stmt = $pdo->query($sql);

// 处理查询结果
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  echo "name: " . $row["name"] . " - email: " . $row["email"] . "<br>";
}

// 释放查询结果内存
$stmt->closeCursor();
?>

2.3 关闭连接

<?php
// 关闭连接
$pdo = null;
echo '连接已关闭';
?>

3. 使用PDO扩展和预处理语句

预处理语句是一种可以防止SQL注入攻击的方式。下面是连接MySQL数据库并使用预处理语句的基本步骤:

3.1 连接MySQL数据库

<?php
$host = 'localhost'; // 数据库主机名
$user = 'root'; // 数据库用户名
$password = ''; // 数据库密码
$dbname = 'testdb'; // 数据库名

// 数据库连接
try {
  $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
  $pdo = new PDO($dsn, $user, $password);
  // 开启PDO的异常处理模式
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "连接成功";
} catch (PDOException $e) {
  echo "连接失败:" . $e->getMessage();
}
?>

3.2 执行预处理语句

<?php
// SQL语句
$sql = "SELECT * FROM users WHERE id = :id";

// 预处理语句
$stmt = $pdo->prepare($sql);

// 绑定参数
$id = 1;
$stmt->bindParam(':id', $id);

// 执行查询
$stmt->execute();

// 处理查询结果
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
  echo "name: " . $row["name"] . " - email: " . $row["email"] . "<br>";
}

// 释放查询结果内存
$stmt->closeCursor();
?>

3.3 关闭连接

<?php
// 关闭连接
$pdo = null;
echo '连接已关闭';
?>

以上就是连接MySQL数据库的三种实现方法。其中,mysqli扩展和PDO扩展都是PHP常用的操作MySQL数据库的方式,而PDO扩展相较于mysqli扩展使用更加灵活,且由于其有预处理语句的支持,也更加安全。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP连接MySQL数据库三种实现方法 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Oracle 12c如何卸载?Windows7上完全卸载Oracle 12c操作步骤(图解教程)

    下面是详细讲解“Oracle 12c如何卸载?Windows7上完全卸载Oracle 12c操作步骤(图解教程)”的完整攻略: 简介 Oracle 12c是很多程序员工作中常用的数据库管理系统。但有时候我们需要卸载它,可能是因为要换成其他版本,或者是重新安装。本文将介绍在Windows7上如何完全卸载Oracle 12c。 环境 本文所使用的环境如下:- 操…

    database 2023年5月22日
    00
  • Mysql数据库报错2003 Can’t connect to MySQL server on ‘localhost’ (10061)解决

    当我们尝试连接MySQL数据库时,有时会遇到以下错误: 2003 Can’t connect to MySQL server on ‘localhost’ (10061) 这是一个常见的MySQL连接错误,一般是由于数据库服务没有启动、防火墙或者MySQL的配置问题导致的。以下是针对该错误的完整攻略: 1. 检查MySQL服务是否启动 在出现该错误之前,先检…

    database 2023年5月18日
    00
  • mysql定时任务(event事件)实现详解

    MySQL定时任务(Event事件)实现详解 什么是MySQL的Event? MySQL的Event是一个可定期调度的操作,可以在指定的时间或者时间间隔内运行。Event事件可以是一个SQL语句或一个脚本文件,可以通过MySQL事件调度器管理和执行。 配置MySQL事件调度器 在使用MySQL事件调度器之前,需要首先开启它。可以通过以下SQL语句开启: SE…

    database 2023年5月22日
    00
  • 安装SQL2005 29506错误码的解决方案

    安装SQL2005时,有时会遇到29506错误码的问题。这个问题的产生原因是因为用户的权限不足或者用户没有完全控制数据库安装目录。以下是解决这个问题的两种常见方法: 方法一:使用管理员命令行安装 打开cmd命令行,在命令行以管理员身份运行(右键cmd,选择“以管理员身份运行”) 明确安装目录位置,在cmd中输入: MSIEXEC /i "D:\SQ…

    database 2023年5月21日
    00
  • redis数据库的数据导入到SQLServer数据库中

    1./. #!/usr/bin/python# -*-coding:utf-8-*- “””@author: yugengde@contact: yugengde@163.com@file : redis_sqlserver.py@time: 2017/11/11 16:50″””import redisimport pymssqlimport jsonfr…

    Redis 2023年4月12日
    00
  • DedeCMS大数据负载性能优化方案(简单几招让你提速N倍)

    DedeCMS大数据负载性能优化方案 随着网站访问量的增加,网站的性能问题也会变得越来越突出。而DedeCMS作为一款国内非常流行的CMS系统,在大数据负载下性能问题更是十分突出。本文将从以下几个方面介绍DedeCMS大数据负载性能优化方案,让你轻松提速N倍。 1. 使用缓存技术 缓存技术是提高网站性能的主要手段之一。DedeCMS可以使用多种缓存技术,如页…

    database 2023年5月19日
    00
  • MongoDB和Amazon DocumentDB的区别

    MongoDB和Amazon DocumentDB都是非关系型数据库,在某些方面具有相似性,但它们也有明显的差异。下面我们将详细讲解MongoDB和Amazon DocumentDB的区别。 MongoDB和Amazon DocumentDB的基本概念 MongoDB MongoDB是一个开源的、基于文档的数据库管理系统。它支持JSON格式的数据,具有性能高…

    database 2023年3月27日
    00
  • mysql中,通过json_insert函数向json字段插入键值?json_insert函数的使用?

    需求描述:   通过json_insert向json字段中插入值,在此进行实验,记录下. 操作过程: 1.查看已经有的包含json数据类型的表 mysql> select * from tab_json; +—-+——————————————————————–…

    MySQL 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部