网络知识
php mysqli 类
2026-04-02 15:46  点击:0

PHP Mysqli类简介

在开发PHP应用程序的过程中,常常需要与MySQL数据库进行交互,这就需要使用到相应的类库。Mysqli类是PHP推出的一个MySQL数据库操作类,它是PDO(PHP数据对象)的一种替代方案,提供了更佳的性能和更好的扩展性。

Mysqli类提供了一系列的方法,可以方便地对MySQL数据库进行增、删、改、查等操作。下面,我们将讲解Mysqli类的主要用法及注意事项。

连接MySQL数据库

Mysqli类的构造函数可以用来连接MySQL数据库。连接MySQL数据库时,需要提供一些参数,包括主机地址、用户名、密码和要连接的数据库名称等。下面是一个连接MySQL数据库的示例:

$mysqli = new mysqli("localhost", "username", "password", "databaseName");if ($mysqli->connect_errno){echo "连接MySQL数据库失败: " . $mysqli->connect_error;exit();}

需要注意的是,如果连接MySQL数据库失败,需要用$mysqli->connect_errno属性和$mysqli->connect_error属性来获取错误信息。

执行SQL语句

执行SQL语句是使用Mysqli类的最主要功能之一。Mysqli类提供了两个执行SQL语句的方法:query()和prepare()。

使用query()方法执行SQL语句的示例如下:

$sql = "SELECT * FROM users WHERE username='john'";$result = $mysqli->query($sql);while ($row = $result->fetch_assoc()){echo $row['username'] . " " . $row['age'];}

注意,Mysqli类的query()方法会返回一个Mysqli_Result对象,需要使用fetch_assoc()等方法来逐行获取查询结果。

使用prepare()方法执行SQL语句的示例如下:

$sql = "SELECT * FROM users WHERE username=? AND password=?";$stmt = $mysqli->prepare($sql);$stmt->bind_param('ss', $username, $password);$stmt->execute();$result = $stmt->get_result();while ($row = $result->fetch_assoc()){echo $row['username'] . " " . $row['age'];}$stmt->close();

使用prepare()方法执行SQL语句需要先进行参数绑定,然后再调用execute()方法执行SQL语句,最后通过get_result()方法获取查询结果。

注意,如果SQL语句中包含参数(如上面的示例中的“?”),则必须使用参数绑定,这可以防止SQL注入攻击。在bindParam()方法中,'ss'表示参数的类型为字符串,有几个参数就在前面写几个s。

数据库事务

Mysqli类支持事务操作,通过begin_transaction()方法开始一个事务,通过commit()方法提交事务,通过rollback()方法回滚事务。示例代码如下:

$mysqli->begin_transaction();$mysqli->query("INSERT INTO users (username, password) VALUES ('mark', '123456')");$mysqli->query("UPDATE users SET age=25 WHERE username='mark'");$mysqli->commit();

注意,在使用事务操作时,如果执行的SQL语句中有错误,需要使用$mysqli->rollback()方法来回滚事务。

关闭MySQL连接

当不需要再使用Mysqli对象时,需要使用close()方法来关闭MySQL连接,释放资源。

$mysqli->close();

总结

本文介绍了Mysqli类的主要用法及注意事项。对于开发PHP应用程序时需要使用MySQL数据库操作的同学,熟练掌握Mysqli类的使用非常重要。我们希望本文对你有所帮助。