PHP如何连接数据库 并且是如何向数据库执行查询的操作“源码展示”

我们废话不多说 直接从连接数据库代码本身说起,下面这几段代码是标准的php连接数据库的方式 即MySQLi(MySQL Improved) 扩展来连接MySQL数据库,具体来说就是通过面向对象(Object-oriented)风格的Mysqli连接
  1. <?php
  2. // 数据库连接信息
  3. $servername = "localhost"; // Mysqli 服务器地址
  4. $username = ""; //数据库名
  5. $password = ""; //数据库密码
  6. $dbname = ""; //要连接数据表名
  7. // 创建数据库连接
  8. $conn = new mysqli($servername, $username, $password, $dbname);
  9. // 检查连接是否成功
  10. if ($conn->connect_error) {
  11.     http_response_code(500);
  12.     echo json_encode([
  13.         'code' => $conn->connect_errno,
  14.         'message' => '数据库连接失败: ' . $conn->connect_error,
  15.         'data' => []
  16.     ], JSON_UNESCAPED_UNICODE);
  17.     exit;
  18. }
  19. ?>
  • MySQLi 有两种连接方式 分别是
  1.   $conn = new mysqli(...)      //这个就是刚才所提到的面向对象风格
  2. $conn = mysqli_connect(...)  //远程式风格
总结他们两种连接方式都很好,只不过 远程式风格比较传统,类似于旧版的mysqli扩展,我更值得推荐第一种“面向对象风格的”。


你可以根据下面列举出来的开发场景进一步选择

  1.  如果是小型项目/比如简单的......
  • 使用上面代码中的Mysqli面向对象的风格即可
  • 确保加入异常处理 ,比如连接错误处理 http_response_code(500) //直接返回一个500的错误代码,或者在返回给前端数据的时候加入$conn->connect_errno   ,然后前端就可以根据后端返回的错误进行相应的处理。

  2.    中型项目/需要数据库抽象
  • 需要考虑PDO (PHP Data Object)
  • 优点:支持使用多种数据库,统一的API

  3.    大型项目/框架
  • 使用Larave的Eloquent ORM,Doctrine等高级ORM
  • 自动连接池,缓存等复杂功能

   总之
  • 扩展类型:Mysqli
  • 编码风格:面向对象风格
  • 连接验证:直连检查connect_error 属性
这种连接方式更安全,高效且现代化,非常适合现代PHP应用开发。
      • 增加预处理语句防止SQL注入
      • 敏感信息移出代码文件
      • 设置正确的字符集(utf8mb4)
      • 添加更完善的错误处理和日志记录
      今天我们就分享到这里,我们下一期见面
返回顶部
  • 提示