当前位置: 首页 > news >正文

PHP怎样连接MySQL数据库?

方法一:使用 mysqli 扩展

mysqli 是 MySQL 的改进版扩展,提供了面向对象和过程化的接口。

面向对象风格

<?php$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}echo "连接成功";// 执行查询示例
$sql = "SELECT id, name FROM your_table";
$result = $conn->query($sql);if ($result->num_rows > 0) {// 输出数据while($row = $result->fetch_assoc()) {echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";}
} else {echo "0 结果";
}// 关闭连接
$conn->close();?>

过程化风格

<?php$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);// 检查连接
if (!$conn) {die("连接失败: " . mysqli_connect_error());
}echo "连接成功";// 执行查询示例
$sql = "SELECT id, name FROM your_table";
$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 结果";
}// 关闭连接
mysqli_close($conn);?>

方法二:使用 PDO 扩展

PDO 提供了一个统一的接口来访问多种数据库,支持参数化查询,能有效防止SQL注入。

<?php$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";try {// 创建连接$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);// 设置 PDO 错误模式为异常$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);echo "连接成功";// 执行查询示例$sql = "SELECT id, name FROM your_table";$stmt = $conn->prepare($sql);$stmt->execute();// 设置结果为关联数组$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);foreach ($stmt->fetchAll() as $row) {echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";}
} catch(PDOException $e) {echo "连接失败: " . $e->getMessage();
}// 连接会在脚本结束时自动关闭,但你可以显式关闭
$conn = null;?>

我的个人PHP项目:

PHP全文检索引擎 WindSearch: https://github.com/rock365/windsearch

请帮我点个star~谢谢你!

http://www.xdnf.cn/news/33409.html

相关文章:

  • 基于STM32中断讲解
  • 【JDBC-54.5】JDBC批处理插入数据:大幅提升数据库操作性能
  • YOLO拓展-NMS算法
  • GWAS_LD
  • TCP 总是禁用分片(IP_DF,Don‘t Fragment)吗?
  • 基于尚硅谷FreeRTOS视频笔记——9—上下文切换的时机与空闲任务
  • 第10期:Classifier-Free Guidance(CFG)——扩散模型的文本引导增强术
  • pycharm中怎么解决系统cuda版本高于pytorch可以支持的版本的问题?
  • Python 一等函数( 把函数视作对象)
  • 指针----------C语言经典题目(2)
  • 【Docker项目实战】使用Docker部署NotepadMX笔记本工具
  • Feign:调用方与被调用方集成的对比及Feign继承的应用
  • C语言内存管理
  • 6. 话题通信 ---- 使用自定义msg,发布方和订阅方cpp,python文件编写
  • 发动机悬置橡胶弹性体试验机
  • Dify快速入门之chatflow
  • 常见设计模式
  • 【对Linux文件权限的深入理解】
  • 针对MCP认证考试中的常见技术难题进行实战分析与解决方案分享
  • 清华《数据挖掘算法与应用》K-means聚类算法
  • 考研408操作系统文件管理——4.2目录系统详解
  • Java PrintStream 类深度解析
  • QT聊天项目DAY06
  • 什么是事件循环
  • 2025年渗透测试面试题总结-拷打题库05(题目+回答)
  • 大学第一次笔记本清灰
  • Zephyr、FreeRTOS、RT-Thread 邮箱(Mailbox)对比分析
  • 【信息系统项目管理师】高分论文:论信息系统项目的采购管理(“营业工单系统”项目)
  • MySql Innodb详细解读
  • 【预告】【k8s系列6】RKE搭建Kubernetes集群