下面是详细讲解“php操作mysqli”的完整攻略:
1. mysqli简介
mysqli
是PHP提供的操作MySQL数据库的扩展库(也是MySQLi客户端库的缩写)。相对于之前常用的mysql
扩展来说,mysqli
更加强大、灵活、安全,并且更适合多线程环境下的操作。
2. 如何使用mysqli
2.1. 连接到MySQL服务器
在使用mysqli进行数据库操作之前,首先需要通过mysqli_connect()
函数来连接到MySQL服务器。示例代码如下:
<?php
$mysqli = mysqli_connect("hostname", "username", "password", "dbname");
if (!$mysqli) {
die("连接数据库失败:" . mysqli_connect_error());
}
echo "连接数据库成功!";
其中,hostname
为MySQL服务器的主机名,username
为用户名,password
为密码,dbname
为要连接的数据库名称。如果连接失败,mysqli_connect()
函数会返回false
,此时可以通过mysqli_connect_error()
函数来获取错误信息。
2.2. 执行SQL语句
连接成功后,就可以使用mysqli_query()
函数来执行SQL语句了。示例代码如下:
<?php
$sql = "SELECT * FROM users";
$result = mysqli_query($mysqli, $sql);
if ($result) {
while ($row = mysqli_fetch_assoc($result)) {
echo "ID:" . $row['id'] . ",名称:" . $row['name'] . "<br>";
}
mysqli_free_result($result);
} else {
echo "查询失败:" . mysqli_error($mysqli);
}
上述代码中,$sql
变量存储着要执行的SQL语句,然后通过mysqli_query()
函数执行这个语句,并将结果存储到$result
变量中。如果执行成功,则可以通过mysqli_fetch_assoc()
函数来逐行获取结果数据并进行遍历,最后通过mysqli_free_result()
函数释放结果集。如果执行失败,则可以通过mysqli_error()
函数来获取错误信息。
2.3. 预处理SQL语句
使用mysqli_query()
函数虽然方便,但却有一些安全隐患,因为使用字符串拼接的方式拼接SQL语句容易被SQL注入攻击。因此,我们可以使用mysqli提供的预处理语句功能来避免这个问题。示例代码如下:
<?php
$stmt = mysqli_prepare($mysqli, "SELECT * FROM users WHERE name=?");
mysqli_stmt_bind_param($stmt, "s", $name);
$name = "Alice";
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt);
if ($result) {
while ($row = mysqli_fetch_assoc($result)) {
echo "ID:" . $row['id'] . ",名称:" . $row['name'] . "<br>";
}
mysqli_free_result($result);
} else {
echo "查询失败:" . mysqli_error($mysqli);
}
mysqli_stmt_close($stmt);
上述代码中,首先通过mysqli_prepare()
函数来创建一个预处理语句,以?
作为占位符,避免了字符串拼接的问题。接着,使用mysqli_stmt_bind_param()
函数将变量$name
与占位符绑定,再使用mysqli_stmt_execute()
函数来执行预处理语句,并通过mysqli_stmt_get_result()
函数获取结果集。最后,遍历结果集并释放资源。
3. 总结
以上是使用mysqli进行数据库操作的一些示例代码和说明。通过这些操作,我们可以更加方便、灵活、安全地操作MySQL数据库。当然,在实际应用中,还有更多的细节需要注意,比如错误处理、事务处理等等。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php操作mysqli(示例代码) - Python技术站