自学内容网 自学内容网

PHP语法学习(第八天)—PHP连接mysql详解(上)

由于之前我已经讲了如何在Centos 7系统中安装PHP脚本语言(看“PHP 在CentOS 7的安装配置方法”),以及mysql数据库的sql语句(看“mysql数据库”

本文就不多描述这两方面的问题,直接进入PHP连接mysql的知识点🤏🏽
另外,想要学习更多PHP语法相关内容请点击“PHP专栏!”
夜凌云:“超越自我,才能超越一切束缚”

在这里插入图片描述

PHP 连接 MySQL

方法一 MySQLi extension

使用MySQLi 扩展连接MySQL数据库是一种常见的方法

启用MySQLi 扩展

首先,确保你的PHP环境中已启用MySQLi扩展

  • 检查php.ini文件:
    先打开你的php.ini文件, 找到以下行并去掉前面的分号(如果存在分号):

    extension=mysqli
    

    保存并重新启动你的Web服务器(如Apache或Nginx)以应用更改

访问 MySQL 数据库前,需要先连接到数据库服务器

  • 实例 (MySQLi - 面向对象)
<?php
$servername = "localhost"; // MySQL服务器地址
$username = "your_username"; // MySQL用户名
$password = "your_password"; // MySQL密码
$dbname = "your_database"; // 要连接的数据库名

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
?>
  • 实例 (MySQLi - 面向过程)
<?php
$servername = "localhost"; // MySQL服务器地址
$username = "your_username"; // MySQL用户名
$password = "your_password"; // MySQL密码
$dbname = "your_database"; // 要连接的数据库名

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检查连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
?>

方法二 PDO连接

PDO(PHP Data Objects)连接MySQL是一种灵活且功能强大的方法

启用MySQLi扩展

  • 首先,确保你的PHP环境中已启用MySQLi扩展:

    • 检查php.ini文件:
    • 打开你的php.ini文件,找到以下行并去掉前面的分号(如果存在分号):
    extension=php_pdo.dll
    extension=php_pdo_mysql.dll
    

PDO实例

<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
try {
     // 创建PDO实例
    $conn = new PDO("mysql:host=$servername;", $username, $password);
    echo "连接成功"; 
}
catch(PDOException $e)
{
    echo $e->getMessage();
}
?>

常用的PDO方法

  • 执行简单的SQL查询:PDO::query()
<?php
$sql = "SELECT * FROM users";
$result = $pdo->query($sql);

while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    
    echo "ID: " . $row['id'] . " - Name: " . $row['name'] . "<br>";
}
?>
  • 预处理SQL语句,防止SQL注入:PDO::prepare()
<?php
$sql = "SELECT * FROM users WHERE id = :id";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':id', $id);
$id = 1;
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);

echo "ID: " . $row['id'] . " - Name: " . $row['name'];
?>
  • 执行不需要返回结果的SQL语句: PDO::exec()
  • 例如INSERT、UPDATE、DELETE
$sql = "INSERT INTO users (name, email) VALUES ('LXJ', 'LXJ@123.com')";
$affected_rows = $pdo->exec($sql);

echo "插入成功,影响的行数: " . $affected_rows;

关闭连接

连接在脚本执行完后会自动关闭,也可以使用以下代码来关闭连接

MySQLi - 面向对象

$conn->close();

MySQLi - 面向过程

mysqli_close($conn);

PDO- 关闭连接

可以通过销毁PDO实例来关闭连接

$pod = null;

综合实例:

MySQLi-面向对象的连接

<?php
$servername = "localhost"; // MySQL服务器地址
$username = "your_username"; // MySQL用户名
$password = "your_password"; // MySQL密码
$dbname = "your_database"; // 要连接的数据库名

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
echo "连接成功";

// 面向对象关闭连接方式
$conn->close();
?>

MySQLi-面向过程的连接

<?php
$servername = "localhost"; // MySQL服务器地址
$username = "your_username"; // MySQL用户名
$password = "your_password"; // MySQL密码
$dbname = "your_database"; // 要连接的数据库名

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检查连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";

//  面向过程关闭连接方式
mysqli_close($conn);
?>

POD 连接

<?php
$dsn = 'mysql:host=localhost;dbname=your_database;charset=utf8'; // 数据源名称
$username = 'your_username'; // MySQL用户名
$password = 'your_password'; // MySQL密码

try {
    // 创建PDO实例
    $pdo = new PDO($dsn, $username, $password);
    
    // 设置错误模式为异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    
    echo "连接成功!";
} 
catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}
?>

PHP连接 MySQL 创建数据库

  • 在 MySQL 中,创建数据库用CREATE DATABASE 语句
  • 创建一个新的数据库时,必须为 mysqli 对象指定三个参数 (servername, usernamepassword)

面向对象:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = new mysqli($servername, $username, $password);
// 检测连接
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} 

// 创建数据库
$sql = "CREATE DATABASE myDB";
if ($conn->query($sql) === TRUE) {
    echo "数据库创建成功";
} else {
    echo "Error creating database: " . $conn->error;
}
 
$conn->close();
?>

面向过程:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
 
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}

// 创建数据库
$sql = "CREATE DATABASE myDB";
if (mysqli_query($conn, $sql)) {
    echo "数据库创建成功";    
} 
else {
    echo "Error creating database: " . mysqli_error($conn);
}
 
mysqli_close($conn);
?>

PDO 创建数据库

PDO 的优势: 在数据库查询过程出现问题时可以使用异常类来 处理问题。如果 try{ } 代码块出现异常,脚本会停止执行并会跳到第一个 catch(){ } 代码块执行代码。

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername", $username, $password);

// 设置 PDO 错误模式为异常
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "CREATE DATABASE myDBPDO";

    // 使用 exec() ,因为没有结果返回
    $conn->exec($sql);
    echo "数据库创建成功<br>";
}
catch(PDOException $e)
{
    echo $sql . "<br>" . $e->getMessage();
}
?>

今天PHP连接mysql的相关知识先讲到这里,明天接着续上其他相关内容!!!
😆想要了解更多请点击练小杰的CSDN!!!!
ℹ️欢迎各位在评论区踊跃讨论,积极提出问题,解决困惑!!!

在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_55767624/article/details/144288869

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!