PHP mysqli处理数据库的常用函数?
封面图
•
2025-10-22
•
PHP
244
0
0
0
在 PHP 中,`mysqli` 是用于与 MySQL 数据库进行交互的扩展,它提供了面向对象和过程式的接口。以下是 `mysqli` 处理数据库的一些**常用函数**,包括连接、查询、处理结果等操作。 --- ## 一、连接数据库 ### 1. `mysqli_connect()` ```php $connection = mysqli_connect("localhost", "username", "password", "database"); ``` - **参数说明**: - 主机名(通常是 `localhost`) - 用户名 - 密码 - 数据库名(可选) > 注意:如果连接失败,可以使用 `mysqli_connect_error()` 获取错误信息。 --- ## 二、执行 SQL 查询 ### 2. `mysqli_query()` ```php $result = mysqli_query($connection, "SELECT * FROM users"); ``` - 执行 SQL 查询,返回结果集。 - 如果是插入、更新、删除等操作,可以使用 `mysqli_query()` 并检查返回值是否为 `true`。 --- ## 三、获取结果数据 ### 3. `mysqli_fetch_array()` ```php while ($row = mysqli_fetch_array($result)) { echo $row['name']; } ``` - 返回一个数组,包含当前行的所有字段。 ### 4. `mysqli_fetch_assoc()` ```php while ($row = mysqli_fetch_assoc($result)) { echo $row['name']; } ``` - 返回一个关联数组(字段名为键)。 ### 5. `mysqli_fetch_row()` ```php while ($row = mysqli_fetch_row($result)) { echo $row[0]; } ``` - 返回一个索引数组。 ### 6. `mysqli_num_rows()` ```php $rowCount = mysqli_num_rows($result); ``` - 获取结果集中行的数量。 ### 7. `mysqli_num_fields()` ```php $fieldCount = mysqli_num_fields($result); ``` - 获取结果集中列的数量。 --- ## 四、处理错误 ### 8. `mysqli_error()` ```php if (!$result) { die("Query failed: " . mysqli_error($connection)); } ``` - 获取最后一次数据库操作的错误信息。 ### 9. `mysqli_errno()` ```php echo mysqli_errno($connection); // 错误编号 ``` - 获取最后一次数据库操作的错误编号。 --- ## 五、其他常用函数 ### 10. `mysqli_close()` ```php mysqli_close($connection); ``` - 关闭数据库连接。 ### 11. `mysqli_real_escape_string()` ```php $name = mysqli_real_escape_string($connection, $_POST['name']); ``` - 对字符串进行转义,防止 SQL 注入。 ### 12. `mysqli_insert_id()` ```php $insertId = mysqli_insert_id($connection); ``` - 获取最后插入记录的自增 ID。 ### 13. `mysqli_affected_rows()` ```php $affectedRows = mysqli_affected_rows($connection); ``` - 获取最近一次操作影响的行数(如 UPDATE、DELETE、INSERT)。 --- ## 六、预处理语句(防止 SQL 注入) ### 14. `mysqli_prepare()` ```php $stmt = mysqli_prepare($connection, "INSERT INTO users (name, email) VALUES (?, ?)"); ``` ### 15. `mysqli_stmt_bind_param()` ```php mysqli_stmt_bind_param($stmt, "ss", $name, $email); ``` ### 16. `mysqli_stmt_execute()` ```php mysqli_stmt_execute($stmt); ``` ### 17. `mysqli_stmt_close()` ```php mysqli_stmt_close($stmt); ``` --- ## 七、面向对象方式(可选) ```php $mysqli = new mysqli("localhost", "user", "pass", "db"); if ($mysqli->connect_error) { die("Connection failed: " . $mysqli->connect_error); } $result = $mysqli->query("SELECT * FROM users"); while ($row = $result->fetch_assoc()) { echo $row['name']; } ``` --- ## 总结 | 功能 | 常用函数 | |------|----------| | 连接数据库 | `mysqli_connect()` | | 执行查询 | `mysqli_query()` | | 获取结果 | `mysqli_fetch_array()` / `mysqli_fetch_assoc()` | | 错误处理 | `mysqli_error()` / `mysqli_errno()` | | 关闭连接 | `mysqli_close()` | | 防止注入 | `mysqli_real_escape_string()` | | 预处理 | `mysqli_prepare()` / `mysqli_stmt_bind_param()` | --- 如果你使用的是面向对象的方式,也可以参考 `mysqli` 类的方法。需要更详细的示例或代码片段吗?
上一篇:
PHP处理时间的常用函数?
下一篇:
php中WEB上传文件的原理是什么,如何限制上传文件的大小?
标题录入,一次不能超过6条
留言
评论