请教大神thinkphp5 怎么打印sql语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教大神thinkphp5 怎么打印sql语句相关的知识,希望对你有一定的参考价值。

你好,一共有两种方法可以打印sql语句,具体实现方法可参照这篇文章:

Thinkphp5打印sql语句

[ SQL ] SHOW COLUMNS FROM `think_action` [ RunTime:0.001339s ]
[ EXPLAIN : array ( 'id' => '1', 'select_type' => 'SIMPLE', 'table' => 'think_action', 'partitions' => NULL, 'type' => 'ALL', 'possible_keys' => NULL, 'key' => NULL, 'key_len' => NULL, 'ref' => NULL, 'rows' => '82', 'filtered' => '100.00', 'extra' => NULL, ) ]
[ SQL ] SELECT * FROM `think_action` LIMIT 1 [ RunTime:0.000539s ]

参考技术A $User = M("User"); // 实例化User象

$User->find(1);
echo $User->getLastSql();
// 3.2版本使用简化
echo $User->_sql();
输结 SELECT * FROM think_user WHERE id = 1
并且每模型都使用独立SQL记录互干扰用空模型getLastSql获取全局SQL记录本回答被提问者采纳
参考技术B fetchsql(ture) 这个没有变化和tp3的一样
$list = db('user')->where($map)->fetchsql(true)->select();
var_dump($list);

thinkphp怎么打印sql语句

thinkphp的sql语句的应用:

[ SQL ] SHOW COLUMNS FROM `think_action` [ RunTime:0.001339s ]

[ EXPLAIN : array ( 'id' => '1', 'select_type' => 'SIMPLE', 'table' => 'think_action', 'partitions'

=> NULL, 'type' => 'ALL', 'possible_keys' => NULL, 'key' => NULL, 'key_len' => NULL, 'ref' 

=> NULL, 'rows' => '82', 'filtered' => '100.00', 'extra' => NULL, ) ]

[ SQL ] SELECT * FROM `think_action` LIMIT 1 [ RunTime:0.000539s ]

扩展资料:

sql的应用原则:

在关系数据库实现过程中,第一步是建立关系模式,定义基本表的结构,即该关系模式是哪些属性组成的,每一属性的数据类型及数据可能的长度、是否允许为空值以及其它完整性约束条件。 

定义基本表:

CREATE TABLE<表名>(<列名1><数据类型>[列级完整性约束条件]

[,<列名2><数据类型>[列级完整性约束条件]]…

[,<-列名n><数据类型>[列级完整性约束条件]]

[,表列级完整性约束条件]); 

说明:

1、<>中是SQL语句必须定义的部分,[]中是SQL语句可选择的部分,可以省略的。 

2、CREATE TABLE表示是SQL的关键字,指示本SQL语句的功能。 

3、<表名>是所要定义的基本表的名称,一个表可以由一个或若干个属性(列)组成,但至少有一个属性,不允许一个属性都没有的表,这样不是空表的含义。多个属性定义由圆括号指示其边界,通过逗号把各个属性定义分隔开,各个属性名称互不相同,可以采用任意顺序排列,一般按照实体或联系定义属性的顺序排列,关键字属性组在最前面,这样容易区分,也防止遗漏定义的属性。 

参考资料来源:百度百科-thinkphp

参考资料来源:百度百科-结构化查询语言

参考技术A $User = M("User"); // 实例化User对象
$User->find(1);
echo $User->getLastSql();
// 3.2版本中可以使用简化的方法
echo $User->_sql();

输出结果是 SELECT * FROM think_user WHERE id = 1

并且每个模型都使用独立的最后SQL记录,互不干扰,但是可以用空模型的getLastSql方法获取全局的最后SQL记录。

$User = M("User"); // 实例化User模型
$Info = M("Info"); // 实例化Info模型
$User->find(1);
$Info->find(2);
echo M()->getLastSql();
echo $User->getLastSql();
echo $Info->getLastSql();

输出结果是

SELECT * FROM think_info  WHERE id = 2
SELECT * FROM think_user  WHERE id = 1
SELECT * FROM think_info  WHERE id = 2

本回答被提问者和网友采纳
参考技术B [ SQL ] SHOW COLUMNS FROM `think_action` [ RunTime:0.001339s ]
[ EXPLAIN : array ( 'id' => '1', 'select_type' => 'SIMPLE', 'table' => 'think_action', 'partitions' => NULL, 'type' => 'ALL', 'possible_keys' => NULL, 'key' => NULL, 'key_len' => NULL, 'ref' => NULL, 'rows' => '82', 'filtered' => '100.00', 'extra' => NULL, ) ]
[ SQL ] SELECT * FROM `think_action` LIMIT 1 [ RunTime:0.000539s ]

thinkphp如何打印sql语句?

参考技术C echo M("表名")->getlastsql();exit; 参考技术D 输出结果么? dump

以上是关于请教大神thinkphp5 怎么打印sql语句的主要内容,如果未能解决你的问题,请参考以下文章

请教问Mybatis 如何打印SQL语句

请教问Mybatis 如何打印SQL语句

请教大神shell的for in语句中怎么使用多个变量

c# Winform 打印问题,请教高手

delphi 中SQL语句

sq 语句 查询两个表 并按时间字段排序