PHP:数据库操作(MySQLi)
在 PHP 中,可以使用 MySQLi(MySQL Improved)扩展来进行数据库操作。
一、连接数据库
1. 创建连接:
使用mysqli_connect()函数建立与 MySQL 数据库的连接。这个函数需要传入数据库服务器地址、用户名、密码和数据库名称等参数。
$servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database_name"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检查连接是否成功 if (!$conn) { die("Connection failed: ". mysqli_connect_error()); }
二、执行查询
1. 查询数据:
使用mysqli_query()函数执行 SQL 查询语句。这个函数接受两个参数,第一个是数据库连接对象,第二个是 SQL 查询语句。
例如,查询数据库中的所有用户信息:
$sql = "SELECT * FROM users"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出数据 while ($row = mysqli_fetch_assoc($result)) { echo "id: ". $row["id"]. " - Name: ". $row["name"]. "<br>"; } } else { echo "0 results"; }
2. 插入数据:
例如,插入一条新的用户记录:
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: ". $sql. "<br>". mysqli_error($conn); }
3. 更新数据:
例如,更新一个用户的电子邮件地址:
$sql = "UPDATE users SET email='new_email@example.com' WHERE id=1"; if (mysqli_query($conn, $sql)) { echo "Record updated successfully"; } else { echo "Error updating record: ". mysqli_error($conn); }
4. 删除数据:
例如,删除一个用户记录:
$sql = "DELETE FROM users WHERE id=1"; if (mysqli_query($conn, $sql)) { echo "Record deleted successfully"; } else { echo "Error deleting record: ". mysqli_error($conn); }
三、预处理语句
1. 防止 SQL 注入:
使用预处理语句可以有效地防止 SQL 注入攻击。预处理语句将 SQL 语句和参数分开处理,确保参数的值不会被解释为 SQL 代码。
例如,使用预处理语句插入数据:
$sql = "INSERT INTO users (name, email) VALUES (?,?)"; $stmt = mysqli_prepare($conn, $sql); // 绑定参数 $name = "Jane Doe"; $email = "jane@example.com"; mysqli_stmt_bind_param($stmt, "ss", $name, $email); // 执行预处理语句 mysqli_stmt_execute($stmt); echo "New record created successfully";
2. 查询数据的预处理语句:
例如,使用预处理语句查询数据:
$sql = "SELECT * FROM users WHERE id=?"; $stmt = mysqli_prepare($conn, $sql); // 绑定参数 $id = 1; mysqli_stmt_bind_param($stmt, "i", $id); // 执行预处理语句 mysqli_stmt_execute($stmt); $result = mysqli_stmt_get_result($stmt); if (mysqli_num_rows($result) > 0) { // 输出数据 while ($row = mysqli_fetch_assoc($result)) { echo "id: ". $row["id"]. " - Name: ". $row["name"]. "<br>"; } } else { echo "0 results"; }
四、错误处理
1. 检查错误:
在执行数据库操作时,应该始终检查是否有错误发生。可以使用mysqli_error()函数获取最近一次操作的错误信息。
$sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'invalid_email')";
if (!mysqli_query($conn, $sql)) {
echo "Error: ". mysqli_error($conn);
}
2. 异常处理:
可以使用try-catch块来捕获数据库操作中的异常。这样可以更好地处理错误,并提供更友好的错误消息。
try { $sql = "INSERT INTO users (name, email) VALUES ('John Doe', 'invalid_email')"; mysqli_query($conn, $sql); } catch (mysqli_sql_exception $e) { echo "Error: ". $e->getMessage(); }
五、关闭连接
1. 关闭连接:
在完成数据库操作后,应该关闭数据库连接以释放资源。可以使用mysqli_close()函数关闭连接。
mysqli_close($conn);
使用 MySQLi 扩展进行数据库操作可以提供更安全、高效的方式来与 MySQL 数据库进行交互。通过正确使用连接、查询、预处理语句和错误处理,可以确保你的 PHP 应用程序与数据库的交互更加稳定和可靠。
PHP编程语言基础
- PHP:从入门到工作的教程
- PHP:从入门到工作的学习路线
- PHP:精通PHP需要学习哪些技术
- PHP:精通PHP可以从事什么工作
- PHP:不同操作系统下搭建PHP服务器
- PHP:XAMPP各组件功能配置
- PHP:变量的定义与命名规则
- PHP:内置的数据类型
- PHP:基本运算符、赋值运算符
- PHP:数学运算符
- PHP:关系运算符、逻辑运算符
- PHP:字符串运算符
- PHP:按位运算
- PHP:三目、太空船、Null 合并运算符
- PHP:逗号运算符(,)
- PHP:输出HTML代码
- PHP:流程控制语句
- PHP:数组
- PHP:函数
- PHP:处理Web表单
- PHP:浏览器处理功能
- PHP:文件操作
- PHP:目录操作
- PHP:面向对象编程
- PHP:数据库操作(MySQLi)
- PHP:数据库操作(PDO)
- PHP:数据库操作(SQLite)
- PHP:PDO 操作 SQLite3 数据库
- PHP:处理Excel表
- PHP:处理PDF文件
- PHP:图像处理
- PHP:绘制图形
- PHP:MP3文件信息处理
- PHP:数码相片信息处理
- PHP:正则表达式
- PHP:站内搜索引擎
- PHP:伪静态处理
- PHP :AJAX动态的网页交互
- PHP:浏览者身份验证
- PHP:加密函数库
- PHP:手机短信发送
- PHP:邮件发送
- PHP:数学运算函数库
- PHP:字符串处理函数库
- PHP:日期/时间函数库
- PHP:常用算法
- PHP:异常处理
- PHP:代码优化
- PHP:缓存技术
- PHP:服务器优化
- PHP:主流框架
- PHP:项目管理
- 网站开发流程
- PHP:Web开发的脚本语言
- HTML:超文本标记语言
- HTML5:超文本标记语言
- CSS:层叠样式表
- CSS3:层叠样式表
- HTML5 + CSS3 网页布局设计
- JavaScript:网页脚本编程语言
- PHP:正则表达式解析HTML标签
- PHP:用内置类DOMDocument解析XML/HTML文档
- PHP:用SimpleXML解析XML/HTML文档
- PHP:用PHPQuery解析XML/HTML文档
- PHP:用QueryPath解析XML/HTML文档