了解如何使用 mysqli
1。什么是 mysqli
MySQLi 是一个配备 PHP 的扩展程序,用于操作 MySQL 数据库。可以认为是PHP操作MySQL数据库的接口。 MySQLi 提供了更简单的面向对象的 API,支持新的 MySQL 功能。
MySQLi扩展同时提供了面向过程的接口和面向对象的接口,以满足不同的用户需求。
2。面向流程的使用
首先,我们需要连接MySQL数据库。连接MySQL数据库时,需要提供主机名、用户名、密码、数据库名等信息,如下所示:
$mysqli = mysqli_connect("localhost", "root", "password", "database");
if (!$mysqli) {
echo "连接失败";
exit;
}
接下来我们就可以执行SQL语句了,比如查询数据表中的数据:
$sql = "SELECT * FROM Table";
$result = mysqli_query($mysqli, $sql);
if (!$result) {
echo "查询失败";
exit;
}
while ($row = mysqli_fetch_assoc($result)) {
echo $row["column_name"];
}
mysqli_free_result($result);
最后,我们需要关闭与MySQL数据库的连接:
mysqli_close($mysqli);
3。如何使用面向对象
面向对象的用法与面向过程的用法类似,只不过必须先创建一个 MySQLi 对象:
$mysqli = new mysqli("localhost", "root", "password", "database");
if ($mysqli->connect_errno) {
echo "连接失败";
exit;
}
接下来我们就可以执行SQL语句了,比如查询数据表中的数据:
$sql = "SELECT * FROM Table";
$result = $mysqli->query($sql);
if (!$result) {
echo "查询失败";
exit;
}
while ($row = $result->fetch_assoc()) {
echo $row["column_name"];
}
$result->close();
最后,我们需要关闭与MySQL数据库的连接:
$mysqli->close();
4。预处理声明
准备好的语句是MySQLi扩展提供的安全的SQL执行方法。这可以通过参数化 SQL 语句来防止 SQL 注入攻击。
如何使用准备好的语句如下:
$mysqli = new mysqli("localhost", "root", "password", "database");
if ($mysqli->connect_errno) {
echo "连接失败";
exit;
}
$sql = "SELECT * FROM Table WHERE column_name = ?";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param("s", $value);
$value = "search_value";
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row["column_name"];
}
$result->close();
$stmt->close();
$mysqli->close();
在prepared语句中,参数用“?”表示,使用bind_param()方法将参数绑定到语句上。
5。交易流程
MySQLi 扩展支持事务处理。事务处理可以保证MySQL数据库中操作的多条SQL语句的原子性和一致性。如果其中一条 SQL 语句失败,则整个事务将回滚。
交易流程的使用如下:
$mysqli = new mysqli("localhost", "root", "password", "database");
if ($mysqli->connect_errno) {
echo "连接失败";
exit;
}
$mysqli->begin_transaction();
$sql1 = "INSERT INTO Table (column1, column2) VALUES (?, ?)";
$stmt1 = $mysqli->prepare($sql1);
$stmt1->bind_param("ss", $value1, $value2);
$value1 = "value1";
$value2 = "value2";
$stmt1->execute();
$stmt1->close();
$sql2 = "UPDATE Table SET column1 = ? WHERE column2 = ?";
$stmt2 = $mysqli->prepare($sql2);
$stmt2->bind_param("ss", $value3, $value2);
$value3 = "value3";
$stmt2->execute();
$stmt2->close();
$mysqli->commit();
$mysqli->close();
在事务处理中,使用begin_transaction()方法开始事务处理,使用commit()方法发送事务,如果发生错误,使用rollback()方法重放事务。
6。总结
MySQLi扩展是PHP操作MySQL数据库常用的扩展程序。提供面向过程和面向对象两种使用方式,支持预备语句和事务处理。使用MySQLi可以使MySQL数据库操作更简单、更高效、更安全。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网