PHP操作MySQL数据库
程序人生
2024-04-10 19:13
短信预约 PHP-IT技能 免费直播动态提醒
这篇文章将为大家详细讲解有关PHP操作MySQL数据库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
PHP 操作 MySQL 数据库
建立数据库连接
$servername = "localhost";
$username = "root";
$password = "password";
$database = "myDB";
// 创建连接
$conn = new mysqli($servername, $username, $password, $database);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
执行 SQL 查询
// 准备查询
$sql = "SELECT * FROM users";
// 执行查询
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// 循环输出结果
while($row = $result->fetch_assoc()) {
echo $row["id"] . " - " . $row["name"] . "<br>";
}
} else {
echo "没有结果";
}
执行 SQL 插入
// 准备插入语句
$sql = "INSERT INTO users (name, email) VALUES ("John", "john@example.com")";
// 执行插入
if ($conn->query($sql) === TRUE) {
echo "新记录创建成功";
} else {
echo "错误: " . $conn->error;
}
执行 SQL 更新
// 准备更新语句
$sql = "UPDATE users SET name="John Doe" WHERE id=1";
// 执行更新
if ($conn->query($sql) === TRUE) {
echo "记录更新成功";
} else {
echo "错误: " . $conn->error;
}
执行 SQL 删除
// 准备删除语句
$sql = "DELETE FROM users WHERE id=1";
// 执行删除
if ($conn->query($sql) === TRUE) {
echo "记录删除成功";
} else {
echo "错误: " . $conn->error;
}
转义特殊字符
// 准备查询(使用转义字符)
$sql = "SELECT * FROM users WHERE name="" . $conn->real_escape_string($_GET["name"]) . """;
// 执行查询
$result = $conn->query($sql);
关闭数据库连接
// 关闭连接
$conn->close();
准备语句
准备语句是一种更安全、更高效的方式来执行 SQL 查询,因为它可以防止 SQL 注入攻击。
// 准备语句
$stmt = $conn->prepare("SELECT * FROM users WHERE name=?");
// 绑定参数
$stmt->bind_param("s", $name);
// 设置参数值
$name = "John";
// 执行语句
$stmt->execute();
// 获取结果
$result = $stmt->get_result();
事务
事务允许你将多个数据库操作组合成一个单一的原子操作,确保要么所有操作都成功完成,要么全部回滚。
// 开始事务
$conn->begin_transaction();
// 执行 SQL 查询
$sql1 = "UPDATE users SET name="John Doe" WHERE id=1";
$sql2 = "INSERT INTO orders (user_id, product_id) VALUES (1, 10)";
// 执行查询
if ($conn->query($sql1) === TRUE && $conn->query($sql2) === TRUE) {
// 提交事务
$conn->commit();
} else {
// 回滚事务
$conn->rollback();
}
以上就是PHP操作MySQL数据库的详细内容,更多请关注编程学习网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341