这里写目录标题
https://www.bilibili.com/video/BV17J411K7Zd?p=1
06. 数据库与模型



1. 非模型定义
1. table和name的区别。

table这个模式我们要使用 完整的表明,,尽管我们已经用了前缀了。我们再使用name方法试一试,

name方法:


修改之后:


2. 模型定义:



MVC齐活了啊,


查询一下看看。


1. 查看原生的SQL语句:


我们直接刷新,他没有反应,这是因为,我们是用json格式输出的。原生显示是需要html的。所以我们后面要去掉json格式。

点击一下,就能够看到了


07. 查询数据

1.基本查询:
1. 查询单条信息。
带上前缀!!!1





默认就搜索一条,且默认是第一条。






1. 捕获异常
正常查询不到,会返回null

,这样用 用try,catch 捕获异常,

返回空数组



2. 获取多列数据


2. 多列异常



可见,查询多列还是单列都是最后的方法决定的。 这就是 面向对象设计的思想。
table需要加上前缀, name 不用加前缀,

2. 更多方法:

1. 查询单个值,不是 * 了。


这时候是字符串形式,就不用 json输出了,,


2. 查询指定列的值。


一、自己操作,写的
1. select 数据表中所有信息

一个数组中有很多个元素,每一个元素又是一个数组,,所以,如果要获取数据的化,需要双层foreach来获取数据。

这里是连接数据表了。我们可以用python建立数据表,然后将数据爬进去,然后think PHP将数据弄出来。
public function do_login()
{
$request = request();
echo "操作login操作"."\n";
if($request->param('method') == 'login')
{
$data = Db::name('user')->select();
foreach ($data as $key=>$value)
{
// dump($key);
// dump($value);
foreach ($value as $key=>$value)
{
echo $key." : ".$value."<br>";
}
echo "<br>";
}
// dump($data);
return "处理登陆";

2. select表中 的某一列:
public function select_column()
{
// $col = Request::instance()->param("column");
$col = input("get.column");# 助手函数,获得get方法传入的column参数的值,
$data=Db::name('user')->column('name');
// return json($data);
var_dump($data);
}

然后是json样式:
public function select_column()
{
// $col = Request::instance()->param("column");
$col = input("get.column");
// dump($col);
$data=Db::name('user')->column('name');
return json($data);
// var_dump($data);
}

这篇博客介绍了ThinkPHP框架中数据库与模型的使用,包括非模型定义下table和name的区别,模型定义中的查看原生SQL语句,以及查询数据的各种方法,如查询单条信息、捕获异常、获取多列数据等。强调了在查询时table需要加上前缀,而name则不需要。
1402





