您的位置:

了解PHP mysqli,提升你的数据库操作能力

PHP mysqli是一种用于连接MySQL数据库的PHP扩展。使用mysqli,您可以更快、更简单地进行数据库操作,从而更好地处理数据。

一、mysqli连接MySQL数据库

使用mysqli连接MySQL数据库非常简单。首先,您需要创建一个mysqli对象,它表示数据库的连接。例如:

$mysqli = new mysqli("localhost", "root", "", "mydatabase");
if ($mysqli -> connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli -> connect_error;
    exit();
}

这将创建一个mysqli对象,将其连接到名为mydatabase的数据库。如果连接失败,代码将输出连接错误。否则,您可以在此对象上执行查询,并使用它处理结果。

二、mysqli查询

一旦连接到数据库,您可以使用mysqli对象执行查询。例如,下面的代码执行一个简单的SELECT查询,并遍历结果集以提取结果:

$result = $mysqli -> query("SELECT * FROM mytable");

while ($row = $result -> fetch_assoc()) {
    echo "Name: " . $row["name"] . " - Age: " . $row["age"];
}

这将执行SELECT * FROM mytable查询,并显示每个行的名称和年龄。如果查询失败,代码将输出查询错误。

三、mysqli预处理

当您需要多次执行相同的查询时,mysqli预处理提供了更好的性能。您可以将查询中带有变量的部分标记为?,使用bind_param()方法为每个变量传递值,并使用execute()方法执行查询。以下是一个简单的示例:

$stmt = $mysqli -> prepare("INSERT INTO mytable (name, age) VALUES (?, ?)");

$name = "John";
$age = 30;
$stmt -> bind_param("si", $name, $age);
$stmt -> execute();

$name = "Jane";
$age = 25;
$stmt -> bind_param("si", $name, $age);
$stmt -> execute();

这将预处理INSERT INTO mytable (name, age) VALUES (?, ?)查询,并执行两次,插入两行数据。注意,在bind_param()方法中,第一个参数是一个字符串,表示每个变量的数据类型。在此示例中,s表示字符串,i表示整数。

四、mysqli事务

在执行多个查询时,mysqli事务提供了一种将多个操作组合在一起的方法。事务允许您将多个查询作为一个整体,如果其中任何一个查询失败,则可以回滚所有更改。以下是一个简单的示例:

$mysqli -> begin_transaction();

$mysqli -> query("INSERT INTO mytable (name, age) VALUES ('John', 30)");
$mysqli -> query("INSERT INTO mytable (name, age) VALUES ('Jane', 25)");

$mysqli -> commit();

在此示例中,begin_transaction()方法启动一个事务。接下来,两个INSERT INTO查询被执行。如果其中任何一个查询失败,commit()方法将永远无法调用。否则,所有更改都将提交到数据库。

五、mysqli关闭连接

一旦完成所有数据库操作,您需要关闭mysqli连接。这可以通过调用close()方法来完成:

$mysqli -> close();

一旦关闭mysqli连接,您将无法再执行任何数据库操作。因此,确保您在必要的时候关闭它。