📜  PHP数据库连接(1)

📅  最后修改于: 2023-12-03 15:18:34.282000             🧑  作者: Mango

PHP数据库连接

在Web开发中,经常需要使用数据库来存储和检索数据。PHP作为一门流行的服务器端编程语言,可以通过多种方式来连接到数据库。本文将介绍PHP连接MySQL数据库的相关内容。

一、PHP连接MySQL数据库的方法
1.使用MySQLi扩展

MySQLi是PHP对MySQL数据库进行操作的扩展,支持面向对象和面向过程两种方法,可以连接MySQL 4.1及以上版本。使用MySQLi扩展连接MySQL数据库的步骤如下:

  1. 创建一个MySQLi对象
  2. 使用对象中的connect()方法连接到MySQL服务器
  3. 使用对象中的query()方法执行SQL语句
  4. 使用对象中的close()方法关闭连接

以下是一个使用面向对象方式连接MySQL数据库并执行SQL语句的示例代码:

<?php
//创建MySQLi对象
$mysqli = new mysqli("localhost", "username", "password", "database");

//检查连接是否成功
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

//执行SQL语句
$res = $mysqli->query("SELECT * FROM `table`");

//关闭连接
$mysqli->close();
?>
2.使用PDO扩展

PDO(PHP Data Objects)是PHP对数据库进行操作的标准接口,支持多种数据库,包括MySQL、Oracle、SQLite等。使用PDO连接MySQL数据库的步骤如下:

  1. 创建一个PDO对象,指定连接的数据库类型、主机名和数据库名
  2. 使用对象中的exec()方法执行SQL语句
  3. 使用对象中的query()方法查询数据
  4. 使用对象中的lastInsertId()方法获取最后插入的数据的ID值
  5. 使用对象中的prepare()方法准备一个SQL语句模板
  6. 使用对象中的execute()方法替换模板中的变量并执行SQL语句
  7. 使用对象中的beginTransaction()、commit()和rollback()方法控制事务

以下是一个使用PDO扩展连接MySQL数据库并执行SQL语句的示例代码:

<?php
//创建PDO对象
$dsn = "mysql:host=localhost;dbname=database";
$username = "username";
$password = "password";
$pdo = new PDO($dsn, $username, $password);

//执行SQL语句
$pdo->exec("INSERT INTO `table` (`name`, `age`) VALUES ('Tom', 20)");

//查询数据
$stmt = $pdo->query("SELECT * FROM `table` WHERE `age` > 18");
while ($row = $stmt->fetch()) {
    echo $row['name'] . " " . $row['age'] . "<br />";
}

//获取最后插入的数据的ID值
$id = $pdo->lastInsertId();

//准备SQL语句模板
$stmt = $pdo->prepare("SELECT * FROM `table` WHERE `age` > ?");
//替换模板中的变量并执行SQL语句
$stmt->execute(array(18));
while ($row = $stmt->fetch()) {
    echo $row['name'] . " " . $row['age'] . "<br />";
}

//控制事务
try {
    $pdo->beginTransaction();
    $pdo->exec("UPDATE `table` SET `age` = `age` + 1");
    $pdo->commit();
} catch (Exception $e) {
    $pdo->rollback();
}
?>
二、MySQL字符集和mysqli_set_charset()函数

在使用PHP连接MySQL数据库时,需要注意数据库和PHP脚本的字符集应该保持一致,否则可能会导致中文乱码等问题。可以通过以下方式设置MySQL数据库的字符集:

  1. 在创建数据库时指定字符集:CREATE DATABASE database CHARACTER SET utf8;
  2. 在创建表时指定字符集:CREATE TABLE table ( id INT(11) NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;

此外,还可以在PHP连接MySQL数据库后使用mysqli_set_charset()函数设置字符集,如下所示:

<?php
//创建MySQLi对象
$mysqli = new mysqli("localhost", "username", "password", "database");
//设置字符集
$mysqli->set_charset("utf8");
?>
三、总结

本文介绍了PHP连接MySQL数据库的两种方法,以及设置MySQL字符集和使用mysqli_set_charset()函数的相关内容。在实际开发中,应根据实际情况选择合适的方法并注意字符集的设置,以避免中文乱码等问题的出现。