欢迎访问宙启技术站
智能推送

使用PHP数据库函数,实现数据的CRUD操作

发布时间:2023-06-12 09:38:06

在Web应用程序中,数据库操作是非常常见和重要的一部分。对于PHP来说,它提供了不少的数据库函数和扩展,可以方便地实现数据的CRUD(增删改查)操作。在本文中,我们会介绍常见的MySQL数据库操作函数,并给出相应的示例。

连接数据库

在进行数据库操作之前,需要先连接到数据库。可以使用mysqli_connect()或者PDO类来建立连接。其中,mysqli_connect()是非面向对象的函数,返回的是一个MySQL连接的对象;而PDO则是面向对象的类,需要先创建一个PDO对象来表示连接。两种方式的示例如下:

mysqli方式:

$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "test_db";

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

// 检查连接是否成功
if (!$conn) {
    die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";

PDO方式:

$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "test_db";

// 创建PDO对象
try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "连接成功";
} catch(PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}

插入数据

在MySQL中,插入数据使用INSERT语句,PHP中也提供相应的函数来执行这个操作。mysqli中的插入数据函数是mysqli_query(),它的原型如下:

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

其中,$link是连接对象,$query是要执行的SQL语句。执行成功时,返回True;否则返回False。下面的示例展示了如何插入一条记录到表中:

$sql = "INSERT INTO users (name, age, email) VALUES ('John', 25, 'john@example.com')";

if (mysqli_query($conn, $sql)) {
    echo "插入成功";
} else {
    echo "插入失败: " . mysqli_error($conn);
}

使用PDO插入数据也很容易,只需要创建一个PDOStatement对象并调用其execute()方法即可:

$name = 'John';
$age = 25;
$email = 'john@example.com';

$sql = "INSERT INTO users (name, age, email) VALUES (?, ?, ?)";
$stmt = $conn->prepare($sql);
if ($stmt->execute([$name, $age, $email])) {
    echo "插入成功";
} else {
    echo "插入失败: " . $stmt->errorInfo()[2];
}

查询数据

在MySQL中,查询数据使用SELECT语句,PHP中mysqli和PDO都提供相应的函数来执行这个操作。mysqli中的查询数据函数是mysqli_query(),它的原型如下:

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

其中,$link是连接对象,$query是要执行的SQL语句。执行成功时,返回一个mysqli_result对象;否则返回False。mysqli_result对象可以使用mysqli_fetch_assoc()或者mysqli_fetch_array()函数来获取结果集中的一行数据。下面的示例展示了如何查询users表中的所有记录:

$sql = "SELECT * FROM users";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    while ($row = mysqli_fetch_assoc($result)) {
        echo "ID: " . $row["id"] . " - Name: " . $row["name"] . " - Age: " . $row["age"] . " - Email: " . $row["email"] . "<br>";
    }
} else {
    echo "没有记录";
}

PDO中的查询数据函数是PDOStatement类的fetch()方法。具体来说,我们需要先创建一个PDOStatement对象,并使用execute()方法执行SQL语句。然后,不断地调用fetch()方法,直到所有的结果都被遍历完。下面的示例展示了如何查询users表中的所有记录:

$sql = "SELECT * FROM users";
$stmt = $conn->prepare($sql);
$stmt->execute();

if ($stmt->rowCount() > 0) {
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "ID: " . $row["id"] . " - Name: " . $row["name"] . " - Age: " . $row["age"] . " - Email: " . $row["email"] . "<br>";
    }
} else {
    echo "没有记录";
}

更新数据

在MySQL中,更新数据使用UPDATE语句,PHP中也提供相应的函数来执行这个操作。mysqli中的更新数据函数是mysqli_query(),它的原型如下:

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

其中,$link是连接对象,$query是要执行的SQL语句。执行成功时,返回True;否则返回False。下面的示例展示了如何更新users表中的某个记录:

$sql = "UPDATE users SET email='john_new@example.com' WHERE id=1";

if (mysqli_query($conn, $sql)) {
    echo "更新成功";
} else {
    echo "更新失败: " . mysqli_error($conn);
}

使用PDO更新数据也很容易,只需要创建一个PDOStatement对象并调用其execute()方法即可:

$email_new = 'john_new@example.com';
$id = 1;

$sql = "UPDATE users SET email=? WHERE id=?";
$stmt = $conn->prepare($sql);
if ($stmt->execute([$email_new, $id])) {
    echo "更新成功";
} else {
    echo "更新失败: " . $stmt->errorInfo()[2];
}

删除数据

在MySQL中,删除数据使用DELETE语句,PHP中也提供相应的函数来执行这个操作。mysqli中的删除数据函数是mysqli_query(),它的原型如下:

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

其中,$link是连接对象,$query是要执行的SQL语句。执行成功时,返回True;否则返回False。下面的示例展示了如何删除users表中的某个记录:

$sql = "DELETE FROM users WHERE id=1";

if (mysqli_query($conn, $sql)) {
    echo "删除成功";
} else {
    echo "删除失败: " . mysqli_error($conn);
}

使用PDO删除数据也很容易,只需要创建一个PDOStatement对象并调用其execute()方法即可:

$id = 1;

$sql = "DELETE FROM users WHERE id=?";
$stmt = $conn->prepare($sql);
if ($stmt->execute([$id])) {
    echo "删除成功";
} else {
    echo "删除失败: " . $stmt->errorInfo()[2];
}

总结

本文介绍了PHP中进行数据库操作的常用函数,并给出了相应的示例代码,包括连接数据库、插入数据、查询数据、更新数据和删除数据。在实际项目开发中,如果需要使用到数据库,这些函数都是必不可少的。需要注意的是,如果程序存在任何安全漏洞,将会导致重要数据的泄漏和被恶意修改,因此务必进行防护措施,如使用预处理语句、过滤用户输入等方式来防范SQL注入等攻击。