mysqli操作数据库的实现总结
网站编辑2023-05-20 08:15:42211
使用mysqli连接数据库需要提供以下信息:

- 主机名
- 用户名
- 密码
- 数据库名
连接数据库的代码如下:
```php
$host = "localhost";
$username = "root";
$password = "password";
$dbname = "mydatabase";
$conn = new mysqli($host, $username, $password, $dbname);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
```
mysqli提供了三种执行SQL语句的方法:
- query():执行一条SQL语句,并返回结果集(如果有)。
- prepare()和execute():执行一条预处理SQL语句,并返回结果集(如果有)。
- multi_query():执行多条SQL语句,并返回结果集(如果有)。
下面是使用query()方法执行SQL语句的示例:
```php
$sql = "SELECT * FROM users";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "
";
}
} else {
echo "0 结果";
}
```
预处理SQL语句可以提高SQL语句的执行效率,并且可以防止SQL注入攻击。预处理SQL语句的步骤如下:
1. 使用prepare()方法准备SQL语句。
2. 使用bind_param()方法绑定参数。
3. 使用execute()方法执行SQL语句。
4. 使用get_result()方法获取结果集。
下面是使用预处理SQL语句查询用户信息的示例:
```php
$stmt = $conn->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$id = 1;
$stmt->execute();
$result = $stmt->get_result();
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "
";
}
} else {
echo "0 结果";
}
```
使用mysqli插入数据需要执行以下步骤:
1. 准备SQL语句。
2. 使用prepare()方法准备SQL语句。
3. 使用bind_param()方法绑定参数。
4. 使用execute()方法执行SQL语句。
下面是使用mysqli插入数据的示例:
```php
$stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $email);
$name = "John";
$email = "john@example.com";
$stmt->execute();
```
使用mysqli更新数据需要执行以下步骤:
1. 准备SQL语句。
2. 使用prepare()方法准备SQL语句。
3. 使用bind_param()方法绑定参数。
4. 使用execute()方法执行SQL语句。
下面是使用mysqli更新数据的示例:
```php
$stmt = $conn->prepare("UPDATE users SET email = ? WHERE id = ?");
$stmt->bind_param("si", $email, $id);
$email = "john@example.com";
$id = 1;
$stmt->execute();
```
使用mysqli删除数据需要执行以下步骤:
1. 准备SQL语句。
2. 使用prepare()方法准备SQL语句。
3. 使用bind_param()方法绑定参数。
4. 使用execute()方法执行SQL语句。
下面是使用mysqli删除数据的示例:
```php
$stmt = $conn->prepare("DELETE FROM users WHERE id = ?");
$stmt->bind_param("i", $id);
$id = 1;
$stmt->execute();
```







