📅  最后修改于: 2023-12-03 15:36:33.038000             🧑  作者: Mango
PHP 是一种流行的服务器脚本语言,它可以与多种数据库进行连接并进行数据交互。
在使用 PHP 连接数据库之前,你需要确保已经安装了 PHP 和你要连接的数据库的 PHP 扩展(例如,MySQLi 和 PDO)。你还需要获得连接所需的数据库信息,例如主机名、用户名、密码和数据库名称。
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 是 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 标记将结果集中的每一行转换为关联数组。最后,将每一行的数据输出。