PHP原生查询mysqli的详细解析
- mysqli 简介
mysqli(MySQL Improved)是PHP的一个扩展,提供了对MySQL数据库的高级功能支持。它不仅提供了对MySQL数据库的连接和查询,还支持事务处理、预处理语句等高级功能。
- 连接MySQL数据库
要使用mysqli进行查询,首先需要连接到MySQL数据库。以下是一个示例代码,展示了如何使用mysqli连接到数据库:
```php
$servername "localhost";
$username "username";
$password "password";
$dbname "myDB";
// 创建连接
$conn new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
```
- 执行查询
连接成功后,可以使用mysqli的查询方法执行SQL语句。以下是一个示例,展示了如何执行一个简单的SELECT查询:
```php
$sql "SELECT id, firstname, lastname FROM MyGuests";
$result $conn->query($sql);
if ($result->num_rows > 0) {
// 输出数据
while($row $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "
";
}
} else {
echo "0 结果";
}
?>
```
- 预处理语句
使用预处理语句可以有效地防止SQL注入攻击。以下是一个使用预处理语句的示例:
```php
$sql "SELECT id, firstname, lastname FROM MyGuests WHERE id ?";
$stmt $conn->prepare($sql);
// 绑定参数
$stmt->bind_param("i", $id);
// 设置参数并执行
$id 1;
$stmt->execute();
// 获取结果
$result $stmt->get_result();
$row $result->fetch_assoc();
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"];
?>
```
- 关闭连接
查询完成后,应该关闭数据库连接。以下是一个示例代码,展示了如何关闭mysqli连接:
```php
$conn->close();
```
相关问答
- 问:什么是mysqli?
答: mysqli是PHP的一个扩展,提供了对MySQL数据库的高级功能支持。
- 问:如何连接到MySQL数据库?
答: 使用mysqli的构造函数,提供数据库服务器地址、用户名、密码和数据库名。
- 问:如何执行SQL查询?
答: 使用mysqli的query方法执行SQL语句。
- 问:什么是预处理语句?
答: 预处理语句可以有效地防止SQL注入攻击。
- 问:如何关闭mysqli连接?
答: 使用mysqli的close方法关闭连接。
- 问:预处理语句和普通查询有什么区别?
答: 预处理语句可以防止SQL注入攻击,同时也可以提高查询效率。