Code前端首页关于Code前端联系我们

了解有关 mysqli 的更多信息

terry 2年前 (2023-09-30) 阅读数 46 #PHP
文章标签 PHP

MySQLi 是一个 PHP 扩展,可以在 PHP 中运行 MySQL 数据库。与早期的mysql扩展相比,它具有更多的功能,并且以面向对象的方式编写,使其更易于使用。在本文中,我们将详细介绍 MySQLi 扩展,包括如何连接数据库、执行 SQL 语句、处理错误等。

1。连接MySQL数据库

在使用MySQLi扩展之前,我们必须先连接数据库。连接数据库是指在PHP代码中创建与MySQL数据库服务器的连接,以方便后续操作。这可以使用 MySQLi 类构造函数来实现。构造函数参数可以是主机名、用户名、密码和 MySQL 服务器数据库名称。以下是 MySQLi 连接到数据库的示例:

    $mysqli = new mysqli('localhost', 'root', 'password', 'test');
    if ($mysqli->connect_errno) {
        die('连接数据库失败:' . $mysqli->connect_error);
    }
    echo '连接数据库成功!';

在上面的代码中,我们使用 MySQLi 类构造函数创建与 MySQL 服务器的连接。如果连接失败,我们使用 $mysqli->connect_errno 和 $mysqli->connect_error 属性来获取错误信息。否则,我们就可以使用这个连接对象进行后续操作。

2。执行SQL语句

连接MySQL数据库后,我们通常需要执行一些SQL语句来处理数据,比如创建数据库表、插入数据、查询数据等。 MySQLi扩展提供了一些执行SQL语句的方法。以下是一些常用的方法:

  • query($sql):执行SQL语句并返回结果集对象。
  • multi_query($sql):执行多条SQL语句,返回一个布尔值,表示执行是否成功。
  • prepare($sql):用于执行准备好的语句并返回预处理后的对象。
  • real_escape_string($str):用于处理SQL语句中的转义字符。

以下是一些示例:

    // 执行一条SQL语句,并返回结果集对象
    $result = $mysqli->query('select * from `users`');

    // 执行多条SQL语句
    $sql = 'insert into `users`(`username`, `password`, `email`) values (?, ?, ?);';
    $sql .= 'update `users` set `password` = `password` + 1;';
    if ($mysqli->multi_query($sql)) {
        echo 'SQL语句执行成功!';
    } else {
        echo 'SQL语句执行失败:' . $mysqli->error;
    }

    // 使用预处理语句
    $stmt = $mysqli->prepare('select `id`, `username`, `password`, `email` from `users` where `id` = ? and `username` = ?');
    $id = 10;
    $username = 'test';
    $stmt->bind_param('is', $id, $username);
    $stmt->execute();
    $stmt->bind_result($id, $username, $password, $email);
    while ($stmt->fetch()) {
        echo $id . ' ' . $username . ' ' . $password . ' ' . $email . '\n';
    }

    // 处理SQL语句中的转义字符
    $str = "I'm a student";
    $str = $mysqli->real_escape_string($str);
    $sql = "insert into `messages`(`content`) values ('$str')";

3。错误处理

在使用MySQLi扩展时,我们通常需要对错误进行处理,以便在程序出现问题时能够及时定位并解决。 MySQLi 扩展提供了许多错误处理方法和属性,包括:

  • $mysqli->errno:获取上次操作的错误码。
  • $mysqli->error:获取上次操作的错误信息。
  • $mysqli->error_list:获取上一次操作的错误的所有信息。
  • $mysqli->rollback():回滚事务。
  • $mysqli->autocommit($mode):设置自动提交模式。
  • $mysqli->commit():提交事务。

这是 MySQLi 错误处理的示例:

    $mysqli->query('insert into `users`(`username`, `password`, `email`) values ("test", "123", "test@example.com")');
    if ($mysqli->errno) {
        $error = $mysqli->error_list[0];
        echo 'SQL语句执行失败:' . $error['errno'] . '-' . $error['error'] . '\n';
        $mysqli->rollback();
    } else {
        echo 'SQL语句执行成功!';
        $mysqli->commit();
    }

4。结论

本文介绍如何使用MySQLi扩展连接MySQL数据库、执行SQL语句以及处理错误。虽然MySQLi操作起来比mysql扩展要复杂一些,但是以面向对象的方式编写的MySQLi扩展让我们的代码更加简洁。我们希望这篇文章对您有所帮助!

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

上一篇:mysql left join 下一篇:MySQL定义变量
热门