php MySQLi类
封面图
•
2025-10-17
•
PHP
144
0
0
0
在 PHP 中,`MySQLi`(MySQL Improved)是一个用于与 MySQL 数据库进行交互的扩展。它提供了面向对象和过程式的接口,其中面向对象的方式更推荐使用,因为它结构清晰、易于维护。 ### 1. MySQLi 类的基本用法 #### 1.1 连接数据库 ```php <?php $host = "localhost"; // 数据库主机 $username = "root"; // 数据库用户名 $password = ""; // 数据库密码 $dbname = "mydatabase"; // 数据库名 // 创建连接 $conn = new mysqli($host, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?> ``` --- #### 1.2 执行查询(SELECT) ```php $sql = "SELECT id, name, email 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"]. "<br>"; } } else { echo "0 结果"; } ``` --- #### 1.3 插入数据(INSERT) ```php $name = "John Doe"; $email = "john@example.com"; $sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')"; if ($conn->query($sql) === TRUE) { echo "新记录插入成功"; } else { echo "错误: " . $sql . "<br>" . $conn->error; } ``` --- #### 1.4 更新数据(UPDATE) ```php $id = 1; $new_email = "johndoe@example.com"; $sql = "UPDATE users SET email='$new_email' WHERE id=$id"; if ($conn->query($sql) === TRUE) { echo "记录更新成功"; } else { echo "更新失败: " . $conn->error; } ``` --- #### 1.5 删除数据(DELETE) ```php $id = 1; $sql = "DELETE FROM users WHERE id=$id"; if ($conn->query($sql) === TRUE) { echo "记录删除成功"; } else { echo "删除失败: " . $conn->error; } ``` --- #### 1.6 使用预处理语句(防止 SQL 注入) ```php $stmt = $conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); $stmt->bind_param("ss", $name, $email); $name = "Jane Doe"; $email = "jane@example.com"; $stmt->execute(); echo "新记录插入成功"; $stmt->close(); ``` --- ### 2. 常用 MySQLi 类方法 | 方法 | 描述 | |------|------| | `__construct()` | 构造函数,用于创建数据库连接 | | `connect_error` | 获取连接错误信息 | | `query()` | 执行 SQL 查询 | | `error` | 获取最近一次操作的错误信息 | | `real_escape_string()` | 转义字符串,防止 SQL 注入 | | `prepare()` | 准备 SQL 语句(用于预处理) | | `bind_param()` | 绑定参数到预处理语句 | | `execute()` | 执行预处理语句 | | `fetch_assoc()` | 以关联数组形式获取结果集 | | `num_rows` | 获取结果集中行数 | --- ### 3. 关闭连接 ```php $conn->close(); ``` --- ### 4. 总结 - `MySQLi` 是 PHP 中与 MySQL 数据库交互的推荐方式。 - 面向对象的 API 更加直观、易用。 - 推荐使用 **预处理语句** 来防止 SQL 注入攻击。 - 使用 `try-catch` 或错误检查来提高程序健壮性。 如果你需要更复杂的操作(如事务、存储过程等),也可以继续深入学习 MySQLi 的高级功能。 需要我帮你写一个完整的 CRUD 示例吗?
上一篇:
php中关于mysqli和mysql区别的一些知识点分析
下一篇:
PHP CURL CURLOPT参数说明(curl_setopt)
标题录入,一次不能超过6条
返回顶部
留言
留言
评论