PHP中的数据库连接和查询函数
发布时间:2023-06-17 12:44:20
在Web应用程序中,使用数据库大多是必须的。一旦需要使用数据库,就必须使用一种编程语言来管理和查询数据库。PHP是一种流行的用于Web开发的编程语言,而MySQL是最常用的关系型数据库之一,两者之间的配合非常出色。在本文中,我们将学习如何在PHP中连接到MySQL数据库并使用查询函数来与数据库进行通信。
1. 连接MySQL数据库
连接MySQL数据库有两种方法:MySQLi(MySQL improved)和PDO(PHP数据对象)。MySQLi是PHP内置的函数,但它仅适用于MySQL数据库。PDO是一种更通用的选择,支持多种数据库类型。
使用MySQLi连接到MySQL数据库:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
// 建立连接
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
// 检查连接是否成功
if (!$connect) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
使用PDO连接到MySQL数据库:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
try {
// 建立连接
$connect = new PDO("mysql:host=$hostname;dbname=$databaseName", $username, $password);
// 设置 PDO 错误模式为异常
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
2. 查询数据
有多种方法可以在MySQL数据库中查询数据。我们将使用MySQLi和PDO使用SELECT语句查询数据的基本方法来说明。SELECT语句可用于从表中检索数据。
使用MySQLi查询数据:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
// 建立连接
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
// 检查连接是否成功
if (!$connect) {
die("Connection failed: " . mysqli_connect_error());
}
// 查询数据
$sql = "SELECT id, firstname, lastname, email FROM users";
$result = mysqli_query($connect, $sql);
// 检查结果集是否是空的
if (mysqli_num_rows($result) > 0) {
// 输出数据
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. " - Email: " . $row["email"]. "<br>";
}
} else {
echo "0 results";
}
// 断开连接
mysqli_close($connect);
?>
使用PDO查询数据:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
try {
// 建立连接
$connect = new PDO("mysql:host=$hostname;dbname=$databaseName", $username, $password);
// 设置 PDO 错误模式为异常
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 查询数据
$sql = "SELECT id, firstname, lastname, email FROM users";
$stmt = $connect->prepare($sql);
$stmt->execute();
// 设置结果集为关联数组
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
// 输出数据
foreach($stmt->fetchAll() as $row) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. " - Email: " . $row["email"]. "<br>";
}
} catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
// 断开连接
$connect = null;
?>
3. 插入数据
使用MySQLi和PDO,我们可以通过INSERT语句将数据插入MySQL数据库中的表中。INSERT INTO语句用于向表中添加新行。
使用MySQLi插入数据:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
// 建立连接
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
// 检查连接是否成功
if (!$connect) {
die("Connection failed: " . mysqli_connect_error());
}
// 插入数据
$sql = "INSERT INTO users (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')";
if (mysqli_query($connect, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($connect);
}
// 断开连接
mysqli_close($connect);
?>
使用PDO插入数据:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
try {
// 建立连接
$connect = new PDO("mysql:host=$hostname;dbname=$databaseName", $username, $password);
// 设置 PDO 错误模式为异常
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 插入数据
$sql = "INSERT INTO users (firstname, lastname, email) VALUES ('John', 'Doe', 'john@example.com')";
// 使用 exec() 方法,因为没有结果返回
$connect->exec($sql);
echo "New record created successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
// 断开连接
$connect = null;
?>
4. 更新数据
使用MySQLi和PDO,我们可以通过UPDATE语句更新MySQL数据库中的表中的数据。UPDATE语句用于修改表中的现有行。
使用MySQLi更新数据:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
// 建立连接
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
// 检查连接是否成功
if (!$connect) {
die("Connection failed: " . mysqli_connect_error());
}
// 更新数据
$sql = "UPDATE users SET email='john.doe@example.com' WHERE id=1";
if (mysqli_query($connect, $sql)) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . mysqli_error($connect);
}
// 断开连接
mysqli_close($connect);
?>
使用PDO更新数据:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
try {
// 建立连接
$connect = new PDO("mysql:host=$hostname;dbname=$databaseName", $username, $password);
// 设置 PDO 错误模式为异常
$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 更新数据
$sql = "UPDATE users SET email='john.doe@example.com' WHERE id=1";
// 使用 exec() 方法,因为没有结果返回
$connect->exec($sql);
echo "Record updated successfully";
} catch(PDOException $e) {
echo $sql . "<br>" . $e->getMessage();
}
// 断开连接
$connect = null;
?>
5. 删除数据
我们使用MySQLi和PDO,可以通过DELETE语句从MySQL数据库中的表中删除数据。DELETE语句用于删除表中的行。
使用MySQLi删除数据:
<?php
$hostname = "localhost";
$username = "root";
$password = "password";
$databaseName = "mydatabase";
// 建立连接
$connect = mysqli_connect($hostname, $username, $password, $databaseName);
// 检查连接是否成功
if (!$connect) {
die("Connection failed: " . mysqli_connect_error());
}
// 删除数据
$sql = "DELETE FROM users WHERE id=1";
if (mysqli_query($connect, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($connect);
}
// 断开连接
mysqli_close($connect);
?>
使用PDO删除数据:
