赞
踩
PHP(Hypertext Preprocessor)是一种开源的脚本语言,主要用于Web开发,特别是服务器端编程。是学习网络安全需要掌握的一门语言。
函数速查:
函数 | 说明 |
---|---|
mysqli_connect( ) | 与MySQL数据库建立连接 |
mysqli_close( ) | 关闭与MySQL数据库的连接 |
mysqli_connect_errno( ) | 返回与MySQL数据库建立连接错误时的错误编号 |
mysqli_connect_error( ) | 返回与MySQL数据库建立连接错误时的错误信息 |
mysqli_query( ) | 执行SQL语句 |
mysqli_errno( ) | 返回执行SQL语句错误时的错误编号 |
mysqli_error( ) | 返回执行SQL语句错误时的错误信息 |
mysqli_fetch_assoc( ) | 从结果集对象中取数据,按条取数据 |
在开始之前,请确保你已经安装了 PHP 和 MySQL,并且已启动了相关服务。
如果没有安装部署,可以查看文章 [Linux安全运维] LAMP 环境搭建保姆级教学(Apache + MySQL + PHP)
PHP与MySQL交互的过程可以分为4步:
MySQLi 是 PHP 提供的扩展之一,支持面向过程和面向对象的方式连接 MySQL 数据库。
示例:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "testdb";
// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);
// 检查连接
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
echo "连接成功";
解释: 使用 mysqli_connect
函数连接数据库,若连接失败则输出错误信息。
示例:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "testdb";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
解释: 使用 new mysqli
创建一个数据库连接对象,检查连接是否成功。
示例:
$sql = "SELECT id, name, email 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"] . " - Email: " . $row["email"] . "<br>";
}
} else {
echo "0 结果";
}
解释: 使用 mysqli_query
执行 SELECT 查询,mysqli_fetch_assoc
逐行获取结果数据。
mysqli_fetch_assoc
是结果集对象操作函数,下面是对结果集对象操作函数的说明:
函数速查:
函数 | 说明 |
---|---|
mysqli_fetch_row( ) | 以索引数组的方式获取一条记录的数据 |
mysqli_fetch_assoc( ) | 以关联数组的方式获取一条记录的数据 |
mysqli_fetch_array( ) | 以索引数组或关联数组的方式获取一条记录的数据 |
mysqli_fetch_all( ) | 以索引数组或关联数组的方式获取全部记录的数据 |
mysqli_fetch_rows( ) | 获取结果集对象中数据条数 |
mysqli_fetch_result( ) | 释放一个结果集相关的内存 |
//获取结果集对象中数据条数 var_dump(mysqli_fetch_rows($results)); //以关联数组的方式获取记录的数据 while($result = mysqli_fetch_assoc($results)){ var_dump($result); } //使用表格的形式 while($result = mysqli_fetch_assoc($results)){ echo "<tr>"; echo "<td>"{$result['user_id']}"</td>" "<td>"{$result['user_name']}"</td>" "<td>"{$result['last_name']}"</td>" "<td>"{$result['user']}"</td>" "<td>"{$result['password']}"</td>"; echo "</tr>"; }
示例:
$sql = "INSERT INTO users (name, email) VALUES ('张三', 'zhangsan@example.com')";
if (mysqli_query($conn, $sql)) {
echo "新记录插入成功";
} else {
echo "错误: " . $sql . "<br>" . mysqli_error($conn);
}
解释: 使用 mysqli_query
执行 INSERT 语句,将数据插入数据库表。
示例:
$sql = "UPDATE users SET email='newemail@example.com' WHERE id=1";
if (mysqli_query($conn, $sql)) {
echo "记录更新成功";
} else {
echo "错误: " . $sql . "<br>" . mysqli_error($conn);
}
解释: 使用 mysqli_query
执行 UPDATE 语句,更新数据库表中的数据。
示例:
$sql = "DELETE FROM users WHERE id=1";
if (mysqli_query($conn, $sql)) {
echo "记录删除成功";
} else {
echo "错误: " . $sql . "<br>" . mysqli_error($conn);
}
解释: 使用 mysqli_query
执行 DELETE 语句,删除指定的记录。
示例:
mysqli_close($conn);
解释: 使用 mysqli_close
关闭数据库连接。
PDO(PHP Data Objects)是另一种连接数据库的方式,支持多种数据库类型,提供了更强大的功能和更好的安全性。
示例:
$dsn = "mysql:host=localhost;dbname=testdb";
$username = "root";
$password = "";
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "连接成功";
} catch (PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
解释: 使用 new PDO
创建连接对象,设置错误模式为异常。
示例:
$sql = "SELECT id, name, email FROM users";
$stmt = $pdo->query($sql);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "ID: " . $row["id"] . " - Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}
解释: 使用 PDO 的 query
方法执行 SELECT 查询,fetch
方法逐行获取数据。
示例:
$sql = "INSERT INTO users (name, email) VALUES (:name, :email)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':email', $email);
$name = '李四';
$email = 'lisi@example.com';
$stmt->execute();
解释: 使用 PDO 预处理语句提高安全性,防止 SQL 注入。
在进行数据库操作时,处理错误是非常重要的。使用 PDO 的异常处理机制或 MySQLi 的错误信息来处理和调试错误。
示例:
if (!$result) {
echo "错误: " . mysqli_error($conn);
}
示例:
try {
// 数据库操作
} catch (PDOException $e) {
echo "错误: " . $e->getMessage();
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。