当前位置: 首页 > 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~谢谢你!

相关文章:

  • python函数之间嵌套使用yield
  • sqli-labs之Less-7 GET注入写shell
  • CPU与GPU之间的交互
  • 【C++】新手入门指南(上)
  • Linux-进度条小程序
  • webpack 中 chunks详解
  • 论文降重GPT指令-实侧有效从98%降低到8%
  • SQL注入相关知识
  • 【解决】torch引入过程中的ImportError: __nvJitLinkAddData_12_1, version libnvJitLink.so.12
  • 阿里云Clickhouse 冷热数据分层存储 实战记录
  • 递归下降 ll(1) 型文法 识别二元组文法分析
  • 从零开始学习 Lucene.Net:.NET Core 中的全文搜索与索引管理
  • [密码学基础]GMT 0002-2012 SM4分组密码算法 技术规范深度解析
  • Windows系统C盘深度清理指南
  • 指令与权限
  • 基于大语言模型的自动化单元测试生成系统及测试套件评估方法
  • 【多线程5】面试常考锁知识点
  • java ai 图像处理
  • Shiro-550 动调分析与密钥正确性判断
  • 【网络编程】TCP数据流套接字编程
  • 直播电商监管新规将公开征求意见,出重拳净化行业生态
  • 东南亚三国行第四日|中柬“老朋友”密集会见,携手构建新时代全天候中柬命运共同体
  • 鲁比奥称美国已向各方提出了“持久和平的框架”
  • 上海:文旅资源全面对接老年人需求,创新“银发伴旅”服务
  • 河南省委书记人民日报撰文:坚定不移贯彻总体国家安全观,为谱写中国式现代化河南篇章提供安全保障
  • 第18届全球航空货运论坛在迪拜开幕,聚焦可持续与数字化转型