PHP7.3 mysqli扩展

PHP7.3 mysqli扩展

PHP7.3 mysqli扩展

简介

在开发Web应用程序时,数据库是不可或缺的一部分。PHP提供了多个扩展来处理数据库操作,其中mysqli扩展是最常用和推荐的扩展之一。mysqli扩展是对MySQL数据库的面向对象封装,提供了更强大和更灵活的功能。本文将详细介绍PHP7.3 mysqli扩展的使用。

安装和配置

PHP7.3默认已经包含mysqli扩展,因此无需额外安装。要开始使用mysqli扩展,需要确保正确配置PHP.ini文件。

PHP.ini文件中,找到以下行并将其取消注释:

;extension=mysqli

取消注释后,重启Web服务器以使配置生效。

连接到数据库

在使用mysqli扩展之前,首先需要建立与MySQL数据库的连接。使用mysqli扩展,可以使用面向对象的方式或过程化的方式来建立连接。

面向对象方式

<?php
servername = "localhost";username = "root";
password = "password";database = "mydatabase";

// 创建连接
conn = new mysqli(servername, username,password, database);

// 检查连接是否成功
if (conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

echo "连接成功";
?>

过程化方式

<?php
servername = "localhost";username = "root";
password = "password";database = "mydatabase";

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

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

echo "连接成功";
?>

以上代码将尝试连接到名为”mydatabase”的MySQL数据库。如果连接失败,将显示错误信息;如果连接成功,将显示”连接成功”。

执行查询

一旦与数据库建立了连接,就可以执行查询操作了。mysqli扩展提供了多个函数来执行不同类型的查询,例如执行SELECT语句和执行INSERT、UPDATE或DELETE语句。

执行SELECT查询

<?php
sql = "SELECT * FROM users";result = conn->query(sql);

if (result->num_rows>0) {
    while (row = result->fetch_assoc()) {
        echo "ID: " .row["id"] . ", 用户名: " . $row["username"] . "<br>";
    }
} else {
    echo "没有结果";
}
?>

以上代码执行了一个SELECT查询,从名为”users”的表中获取所有行并输出它们的id和username。

执行INSERT查询

<?php
sql = "INSERT INTO users (username, password) VALUES ('John', 'Doe')";
if (conn->query(sql) === true) {
    echo "插入成功";
} else {
    echo "插入失败: " .conn->error;
}
?>

以上代码执行了一个INSERT查询,将新的用户John Doe插入到users表中。

执行UPDATE查询

<?php
sql = "UPDATE users SET username='Jane' WHERE id=1";
if (conn->query(sql) === true) {
    echo "更新成功";
} else {
    echo "更新失败: " .conn->error;
}
?>

以上代码执行了一个UPDATE查询,将id为1的用户的username更新为Jane。

执行DELETE查询

<?php
sql = "DELETE FROM users WHERE id=1";
if (conn->query(sql) === true) {
    echo "删除成功";
} else {
    echo "删除失败: " .conn->error;
}
?>

以上代码执行了一个DELETE查询,删除id为1的用户。

预防SQL注入

当使用用户提供的数据构建SQL查询时,容易受到SQL注入攻击。为了预防SQL注入,mysqli扩展提供了预处理语句和绑定参数的功能。

<?php
id = 1;username = "John";

stmt =conn->prepare("SELECT * FROM users WHERE id=? AND username=?");
stmt->bind_param("is",id, username);stmt->execute();
result =stmt->get_result();

if (result->num_rows>0) {
    while (row = result->fetch_assoc()) {
        echo "ID: " .row["id"] . ", 用户名: " . row["username"] . "<br>";
    }
} else {
    echo "没有结果";
}stmt->close();
?>

以上代码中,使用了预处理语句和绑定参数的方式执行了一个SELECT查询,从名为”users”的表中获取id为1且用户名为John的用户。

处理事务

在一些情况下,可能需要执行多个相关的查询操作,并确保它们要么全部成功,要么全部失败。这时可以使用事务来管理这些操作。

<?php
conn->begin_transaction();

try {
    // 执行多个查询操作conn->commit();
    echo "事务提交成功";
} catch (Exception e) {conn->rollback();
    echo "事务回滚: " . $e->getMessage();
}
?>

以上代码中,$conn->begin_transaction()开始一个事务,并在try块中执行多个查询操作。如果所有操作都成功,调用$conn->commit()提交事务;如果出现异常,调用$conn->rollback()回滚事务。

关闭连接

当与数据库的交互完成后,应该关闭与数据库的连接以释放资源。

<?php
$conn->close();
?>

以上代码将关闭与数据库的连接。

结论

本文介绍了PHP7.3 mysqli扩展的使用方法,包括连接数据库、执行查询、预防SQL注入、处理事务和关闭连接等。通过灵活运用这些功能,可以更便捷、高效地进行数据库操作。使用mysqli扩展能够简化数据库操作,并提供更多的安全特性,建议在开发Web应用程序时广泛应用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程