我们废话不多说 直接从连接数据库代码本身说起,下面这几段代码是标准的php连接数据库的方式 即MySQLi(MySQL Improved) 扩展来连接MySQL数据库,具体来说就是通过面向对象(Object-oriented)风格的Mysqli连接
<?php// 数据库连接信息$servername = "localhost"; // Mysqli 服务器地址$username = ""; //数据库名$password = ""; //数据库密码$dbname = ""; //要连接数据表名// 创建数据库连接$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接是否成功if ($conn->connect_error) {http_response_code(500);echo json_encode(['code' => $conn->connect_errno,'message' => '数据库连接失败: ' . $conn->connect_error,'data' => []], JSON_UNESCAPED_UNICODE);exit;}?>
- MySQLi 有两种连接方式 分别是
- $conn = new mysqli(...) //这个就是刚才所提到的面向对象风格
- $conn = mysqli_connect(...) //远程式风格
总结他们两种连接方式都很好,只不过 远程式风格比较传统,类似于旧版的mysqli扩展,我更值得推荐第一种“面向对象风格的”。
你可以根据下面列举出来的开发场景进一步选择
- 如果是小型项目/比如简单的......
- 使用上面代码中的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)
- 添加更完善的错误处理和日志记录
今天我们就分享到这里,我们下一期见面