📜  使用 php 连接数据库(1)

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

使用 PHP 连接数据库

PHP 是一种流行的服务器脚本语言,它可以与多种数据库进行连接并进行数据交互。

前提条件

在使用 PHP 连接数据库之前,你需要确保已经安装了 PHP 和你要连接的数据库的 PHP 扩展(例如,MySQLi 和 PDO)。你还需要获得连接所需的数据库信息,例如主机名、用户名、密码和数据库名称。

使用 MySQLi 连接数据库

MySQLi 是 PHP 的扩展,提供与 MySQL 数据库的连接和操作功能。

连接到数据库
<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "myDB";

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

// 检测连接是否成功
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

以上代码示例包括了四个参数:主机名、用户名、密码和要连接的数据库名称。mysqli_connect() 函数用于创建与数据库的新连接。如果失败,将返回一个错误消息并且程序将停止运行。

查询数据

下面的代码示例演示如何从表中查询数据:

<?php
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "myDB";

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

// 检测连接是否成功
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
  // 输出数据
  while($row = mysqli_fetch_assoc($result)) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}

mysqli_close($conn);
?>

以上代码通过 mysqli_query() 函数执行 SQL 查询。然后,使用 mysqli_num_rows() 函数来检测是否有匹配的行。如果有,就使用 mysqli_fetch_assoc() 函数从结果集中检索行。

使用 PDO 连接数据库

PDO 是 PHP 的扩展,提供与多种数据库的连接和操作功能,是一个接口,可以很方便地使用多种类型的数据库,包括 MySQL、PostgreSQL、Microsoft SQL Server 和 Oracle 等。

连接到数据库
<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // 设置 PDO 错误模式为异常
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

以上代码示例通过 new PDO() 函数创建新的 PDO 对象。第一个参数指定了要连接的数据库类型、主机名和数据库名称。第二个参数和第三个参数分别是用户名和密码。

查询数据

下面的代码示例演示如何从表中查询数据:

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

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // 设置 PDO 错误模式为异常
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");
  $stmt->execute();

  // 设置结果集为关联数组
  $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);

  // 输出数据
  foreach($stmt->fetchAll() as $k=>$v) {
    echo "id: " . $v["id"]. " - Name: " . $v["firstname"]. " " . $v["lastname"]. "<br>";
  }
} catch(PDOException $e) {
  echo "Error: " . $e->getMessage();
}
$conn = null;
?>

以上代码示例使用 PDO::query() 函数执行 SQL 查询。 通过 fetchAll() 函数获取所有匹配的行数据并进行遍历循环。使用 PDO::FETCH_ASSOC 标记将结果集中的每一行转换为关联数组。最后,将每一行的数据输出。