在网站开发中,PHP和MySQL的搭配堪称经典且高效。PHP是一种被广泛应用的后端脚本语言,可以高效地与MySQL数据库协作,用于执行数据的增删改查等操作。接下来,我们将通过实例为大家详细讲解PHP如何操控MySQL数据库的常见技术。

连接到MySQL数据库

在PHP中操作MySQL数据库,首先需要建立与数据库的连接。可以使用mysqli扩展或PDO(PHP Data Objects)来实现。下面分别介绍这两种方式。

使用mysqli扩展连接数据库

mysqli扩展是PHP 5及以上版本提供的面向对象和面向过程的MySQL数据库扩展。以下是一个使用面向过程方式连接数据库的示例:

$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

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

// 检查连接
if (!$conn) {
    die("Connection failed: ". mysqli_connect_error());
}
echo "Connected successfully";

上述代码中,首先定义了数据库服务器地址、用户名、密码和数据库名,然后使用"mysqli_connect"函数创建连接。如果连接失败,使用"die"函数输出错误信息;如果连接成功,输出“Connected successfully”。

使用PDO连接数据库

PDO是PHP提供的一个统一的数据库访问抽象层,支持多种数据库。以下是一个使用PDO连接MySQL数据库的示例:

$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";

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

在这个示例中,使用"PDO"类创建一个新的数据库连接对象。通过"setAttribute"方法设置错误模式为异常,这样在连接失败时会抛出异常,可以使用"try-catch"块来捕获并处理异常。

执行SQL查询

连接到数据库后,就可以执行各种SQL查询语句了。下面分别介绍使用mysqli和PDO执行查询的方法。

使用mysqli执行查询

以下是一个使用mysqli执行简单SELECT查询的示例:

$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"]. "
";
    }
} else {
    echo "0 results";
}

在这个示例中,首先定义了一个SELECT查询语句,然后使用"mysqli_query"函数执行该查询。如果查询结果不为空,使用"mysqli_fetch_assoc"函数逐行获取结果,并输出每一行的数据。

使用PDO执行查询

以下是一个使用PDO执行SELECT查询的示例:

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

if (count($result) > 0) {
    foreach ($result as $row) {
        echo "id: ". $row["id"]. " - Name: ". $row["firstname"]. " ". $row["lastname"]. "
";
    }
} else {
    echo "0 results";
}

在这个示例中,使用"prepare"方法准备SQL语句,然后使用"execute"方法执行查询。最后使用"fetchAll"方法获取所有查询结果,并使用"foreach"循环遍历输出。

添加数据

添加数据是数据库操作中常见的需求。下面分别介绍使用mysqli和PDO添加数据的方法。

使用mysqli添加数据

以下是一个使用mysqli添加数据的示例:

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if (mysqli_query($conn, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: ". $sql. "
". mysqli_error($conn);
}

在这个示例中,定义了一个INSERT语句,然后使用"mysqli_query"函数执行该语句。如果添加成功,输出“New record created successfully”;如果失败,输出错误信息。

使用PDO添加数据

以下是一个使用PDO添加数据的示例:

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES (:firstname, :lastname, :email)";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':firstname', $firstname);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':email', $email);

// 设置参数并执行
$firstname = "John";
$lastname = "Doe";
$email = "john@example.com";
$stmt->execute();

echo "New record created successfully";

在这个示例中,使用"prepare"方法准备SQL语句,并使用"bindParam"方法绑定参数。最后设置参数值并执行添加操作。

更新数据

更新数据可以修改数据库中已有的记录。下面分别介绍使用mysqli和PDO更新数据的方法。

使用mysqli更新数据

以下是一个使用mysqli更新数据的示例:

$sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2";

if (mysqli_query($conn, $sql)) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: ". mysqli_error($conn);
}

在这个示例中,定义了一个UPDATE语句,然后使用"mysqli_query"函数执行该语句。如果更新成功,输出“Record updated successfully”;如果失败,输出错误信息。

使用PDO更新数据

以下是一个使用PDO更新数据的示例:

$sql = "UPDATE MyGuests SET lastname=:lastname WHERE id=:id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':lastname', $lastname);
$stmt->bindParam(':id', $id);

// 设置参数并执行
$lastname = "Doe";
$id = 2;
$stmt->execute();

echo "Record updated successfully";

在这个示例中,使用"prepare"方法准备SQL语句,并使用"bindParam"方法绑定参数。最后设置参数值并执行更新操作。

删除数据

删除数据可以从数据库中移除不需要的记录。下面分别介绍使用mysqli和PDO删除数据的方法。

使用mysqli删除数据

以下是一个使用mysqli删除数据的示例:

$sql = "DELETE FROM MyGuests WHERE id=3";

if (mysqli_query($conn, $sql)) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: ". mysqli_error($conn);
}

在这个示例中,定义了一个DELETE语句,然后使用"mysqli_query"函数执行该语句。如果删除成功,输出“Record deleted successfully”;如果失败,输出错误信息。

使用PDO删除数据

以下是一个使用PDO删除数据的示例:

$sql = "DELETE FROM MyGuests WHERE id=:id";
$stmt = $conn->prepare($sql);
$stmt->bindParam(':id', $id);

// 设置参数并执行
$id = 3;
$stmt->execute();

echo "Record deleted successfully";

在这个示例中,使用"prepare"方法准备SQL语句,并使用"bindParam"方法绑定参数。最后设置参数值并执行删除操作。

综上所述,PHP操作MySQL数据库可以使用mysqli扩展或PDO,它们各有优缺点。mysqli扩展更适合简单的项目,而PDO则提供了更统一的接口,支持多种数据库。通过上述介绍的常用方法和实例,你可以在实际项目中灵活运用PHP与MySQL进行数据交互。