PHP与ThinkPHP连接数据库示例

server/2025/1/12 14:37:13/

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客

《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书

使用VS Code开发ThinkPHP项目-CSDN博客

编程与应用开发_夏天又到了的博客-CSDN博客

7.1  PHP连接数据库

PHP支持的数据库类型非常广泛,包括MySQL、Oracle、SQL Server、MongoDB、Redis、PostgreSQL、SQLite等。以连接MySQL数据库为例,通常使用mysqli扩展或PDO(PHP Data Objects)扩展,这两个扩展需要在PHP安装目录下的php.ini中进行配置。首先打开php.ini,找到“;extension=php_mysqli”和“;extension=pdo_mysql”语句,去掉这两条语句前的分号“;”,再保存一下php.ini文件,重新启动开发服务器即可启用mysqli和PDO。

下面是PHP通过mysqli扩展连接数据库的示例,需要读者事先安装好MySQL 8数据库

//public/testmysqli.php
<?php
//连接数据库,world是MySQL自带的示例数据库,在安装MySQL时需要选择安装
$db=mysqli_connect('localhost','root','1111','world') or die("无法连接服务器"); 
print("成功连接服务器<br>");$sq = "select * from city limit 10";
$result = mysqli_query($db,$sq);while($row = mysqli_fetch_row($result)){print($row[1]."<br>");
}
mysqli_close($db);

运行服务器,在浏览器中访问http://localhost:8000/testmysqli.php,看到正确的输出结果,即表示mysqli扩展正常工作。再来看一个PHP通过PDO扩展连接数据库的示例:

//public/testpdo.php
<?php
try {//连接数据库,world是MySQL自带的示例数据库,在安装MySQL时需要选择安装$dbconnect = new PDO('mysql:host=localhost;dbname=world','root','1111');
} catch (PDOException $exception) {echo "Connection error message: " . $exception->getMessage();
}
$sqlquery = "select * from city limit 10";
$result = $dbconnect->query($sqlquery);
foreach ($result as $row){$name = $row['Name'];$countrycode = $row['CountryCode'];echo "City: $name  . $CountryCode. <br/>";
}

运行服务器,在浏览器中访问http://localhost:8000/testpdo.php,看到正确的输出结果,即表示PDO扩展已经正常工作了。

7.2  ThinkPHP连接数据库

ThinkPHP 8的数据库连接的配置跟之前的版本区别不大,在config/database.php中配置好连接信息,然后就可以编写控制器并执行查询了。

ThinkPHP 8支持多个数据库连接,默认情况下会使用默认的数据库进行连接,我们也可以通过代码指定想要采用的连接方式,这个功能使用起来非常灵活。

7.2.1  单个数据库连接

下面是一个连接数据库的配置示例:

// config/database.php
'default' => env('DB_DRIVER', 'mysql'),
// 数据库连接配置信息
'connections' => ['mysql' => [ // 连接标识符// 数据库类型'type' => env('DB_TYPE', 'mysql'),// 服务器地址'hostname' => env('DB_HOST', '127.0.0.1'),// 数据库名'database' => env('DB_NAME', 'test'),// 用户名'username' => env('DB_USER', 'root'),// 密码'password' => env('DB_PASS', '111111'),// 端口'hostport' => env('DB_PORT', '3306'),// 数据库连接参数'params' => [],// 数据库编码默认采用utf8'charset' => env('DB_CHARSET', 'utf8'),// 数据库表前缀'prefix' => env('DB_PREFIX', ''),],// 更多的数据库配置信息
]

下面列举一个在控制器中查询数据库版本的示例。

【示例7-1】

新建app/controller/Index.php文件,代码如下:

<?php
// 控制器
namespace app\controller;use think\facade\Db;class Index
{// 获取数据库版本号public function index(){print_r(Db::query('SELECT VERSION()'));}
}

运行服务器,在浏览器中访问http://localhost:8000,输出结果如下,笔者的数据库版本是8.3.0,读者的输出有可能与此结果信息不一致,这个是正常的。

Array ( [0] => Array ( [VERSION()] => 8.3.0 ) )


http://www.ppmy.cn/server/157780.html

相关文章

Copula算法原理和R语言股市收益率相依性可视化分析

阅读全文&#xff1a;http://tecdat.cn/?p6193 copula是将多变量分布函数与其边缘分布函数耦合的函数&#xff0c;通常称为边缘。在本视频中&#xff0c;我们通过可视化的方式直观地介绍了Copula函数&#xff0c;并通过R软件应用于金融时间序列数据来理解它&#xff08;点击文…

AsyncOperation.allowSceneActivation导致异步加载卡死

先看这段代码&#xff0c;有个诡异的问题&#xff0c;不确定是不是bug public class Test : MonoBehaviour {void Start(){StartCoroutine(LoadScene(Ego.LoadingLevel));}IEnumerator LoadScene(string sceneName){LoadingUI.UpdateProgress(0.9f);yield return new WaitForS…

Operation001-Install

操作001&#xff1a;RabbitMQ安装 一、安装 # 拉取镜像 docker pull rabbitmq:3.13-management# -d 参数&#xff1a;后台运行 Docker 容器 # --name 参数&#xff1a;设置容器名称 # -p 参数&#xff1a;映射端口号&#xff0c;格式是“宿主机端口号:容器内端口号”。5672供…

Python 教程 - 基本语句

Python 教程 - 基本语句 条件语句循环语句for 循环while 循环breakcontinue pass 语句 条件语句 在进行逻辑判断时&#xff0c;我们需要用到条件语句&#xff0c;Python 提供了 if、elif、else 来进行逻辑判断。格式如下所示&#xff1a; if 判断条件1:执行语句1... elif 判断…

nginx反向代理+缓存

1、nginx-LB配置页面缓存 [rootOldboy conf]# vi nginx.conf http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;include proxy.conf; …

linux网络 | https前置知识 | 数据加密与解密、数据摘要

前言:本节内容讲述https的相关内容。 https博主会着重讲解https如何让一个请求和一个响应能够安全的进行交互。 https博主将用两篇文章进行讲解。本篇是两篇中第一篇。会把http的安全问题引出来&#xff0c; 然后说一下https的基本解决方法。 下面废话不多说&#xff0c; 开始我…

计算机网络之---UDP协议

UDP协议 UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09;是传输层的一种协议&#xff0c;提供无连接的、简单的、低延迟的数据传输服务。与TCP不同&#xff0c;UDP不进行数据的重传、排序或流量控制&#xff0c;因此其传输速度更快&#xff0c;但…

Excel 做数据分析的好与不好

日常工作中&#xff0c;涉及到数据的计算分析&#xff0c;Excel 一定是使用最多的。但是也有不少小伙伴困惑于 Excel 的深入学习难度大&#xff0c;复杂问题不好做&#xff0c;相同问题重复烦&#xff0c;大数据跑不了等问题。这里我们就来聊一聊 Excel 做数据分的好与不好&…