当前位置:首页 » 编程语言 » tp输出sql语句

tp输出sql语句

发布时间: 2022-02-24 15:34:47

A. 为啥TP日志无法记录运行的sql语句

可以在config.php中进行设置,默认为关闭状态。
'APP_DEBUG'
=> true

打开\ThinkPHP\Common\debug.php文件可以查看debug的默认设置如下:

return
array(

'LOG_RECORD'=>true, //
进行日志记录

'LOG_RECORD_LEVEL'
=>
array('EMERG','ALERT','CRIT','ERR','WARN','NOTIC','INFO','DEBUG','SQL'),
// 允许记录的日志级别

'DB_FIELDS_CACHE'=> false, //数据库字段缓存

'SHOW_RUN_TIME'=>true,
// 运行时间显示

'SHOW_ADV_TIME'=>true,
// 显示详细的运行时间

'SHOW_DB_TIMES'=>true,
// 显示数据库查询和写入次数

'SHOW_CACHE_TIMES'=>true,
// 显示缓存操作次数

'SHOW_USE_MEM'=>true,
// 显示内存开销

'SHOW_PAGE_TRACE'=>true,
// 显示页面Trace信息 由Trace文件定义和Action操作赋值

'APP_FILE_CASE'
=> true, //
是否检查文件的大小写 对Windows平台有效
);
模型调试:显示SQL语句

$User=new Model('User');
$User->find(1);
echo
$User->getLastSql();//输出最后执行的一条SQL语句

B. thinkphp怎么打印sql语句

thinkphp的sql语句的应用:

[SQL]SHOWCOLUMNSFROM`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`LIMIT1[RunTime:0.000539s]

(2)tp输出sql语句扩展阅读:

sql的应用原则:

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

定义基本表:

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

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

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

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

说明:

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

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

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

C. tp2.0 如何显示调试SQL语句

配置如下
在pom中增加如下依赖:
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.13</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.0-beta9</version>
</dependency>
log4j.properties 如下配置 log4j.rootLogger=debug,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
增加一个 log4jdbc.log4j2.prpperties 内容如下:
dbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.debug.stack.prefix=
log4jdbc.sqltiming.warn.threshold=
log4jdbc.sqltiming.error.threshold=
log4jdbc.mp.booleanastruefalse=
log4jdbc.mp.sql.maxlinelength=
log4jdbc.mp.fulldebugstacktrace=
log4jdbc.statement.warn=
log4jdbc.mp.sql.select=
log4jdbc.mp.sql.insert=
log4jdbc.mp.sql.update=
log4jdbc.mp.sql.delete=
log4jdbc.mp.sql.create=
log4jdbc.mp.sql.addsemicolon=
log4jdbc.auto.load.popular.drivers=
log4jdbc.trim.sql=
log4jdbc.trim.sql.extrablanklines=
log4jdbc.suppress.generated.keys.exception=
log4jdbc.drivers=
最后在mybatis的全局配置文件中
<dataSource type="POOLED">
<property name="driver" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy" />
<property name="url" value="jdbc:log4jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>

D. php怎么获取上一条执行的sql语句

原生代码不支持获取上一次执行的sql语句,ThinkPHP用getLastSql()函数获取的,代码如下:

classUserModelextendsModel(BaseModel){
publicfunctiontest($data){
$model=M('user');
$model->add($data);
$sql=$model->getLastSql();
}

TP还有一种种方法就是直接用_sql,这个更方便!

1.

$model->_sql();

方法实际执行的就是

2.

$model->getLastSql();

用_sql注意中文乱码问题,相来说还是getlastsql比较快,_有时候会因为中文编码出错
至于大小写的问题根本不存在 php不区分这些大小写的。

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

[SQL]SHOWCOLUMNSFROM`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`LIMIT1[RunTime:0.000539s]

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

thinkphp5 怎么打印sql语句

F. 请教thinkphp3打印sql语句

thinkphp如何打印sql语句
thinkphp如何打印sql语句?比如 $member = M("member"); $map['id'] = 1; $result = $member->where($map)->delete();
SQL语句应该是delete * from table member where id = 1;
怎样输出这个sql判断?我记得有个函数,但忘了是哪个了
------解决方法--------------------
getLastSql
------解决方法--------------------
echo M("member")->getLastSql();

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

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

ThinkPHP5打印sql语句

[SQL]SHOWCOLUMNSFROM`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`LIMIT1[RunTime:0.000539s]

H. TP框架输出sql语句奇数中文乱码

设置php编码

I. TP框架中如何看到错误的SQL语句

遇到的情景:TP框架中,如果一个SQL语句是错误的,当执行该SQL时页面就会报错结束执行,所以也就无法用$this->getLastSql()打印出错误的语句。
问题:想要查看那条错误的SQL语句是怎样的
解决方法:如图,在Driver.class.php中parseSql函数中加上一句 echo $sql.'<br />'; 就可以在页面中打印出所有执行的SQL语句(不管是正确的还是错误的都会打印出来)

J. TP怎么批量执行sql语句

如下:
1、打开cmd,切换到mysql的bin目录下 (这个需要根据自己电脑mysql安装位置查找,下面是我的电脑上mysql安装目录)
2、 C:\Program Files(x86)\MySQL5.6\bin>mysqld.exe -install
Service successfully installed.
3、 C:\Program Files(x86)\MySQL5.6\bin>net start mysqlMySQL 服务已经启动成功
4.现在打开服务列表,就可以看到mysql服务了。

热点内容
安卓日历每月提醒怎么设置 发布:2025-01-09 23:07:53 浏览:387
安卓手机qq怎么备份 发布:2025-01-09 23:07:12 浏览:956
kettle源码下载 发布:2025-01-09 23:01:36 浏览:733
casejava 发布:2025-01-09 22:56:56 浏览:698
oracle如何导出数据库 发布:2025-01-09 22:55:13 浏览:771
编程ppm 发布:2025-01-09 22:49:25 浏览:729
蒸汽之都侦探安卓按键在哪里 发布:2025-01-09 22:48:30 浏览:819
怎么修改域账号的配置文件 发布:2025-01-09 22:30:44 浏览:478
49葫芦娃怎么改密码 发布:2025-01-09 22:30:00 浏览:844
博德之门安卓安装哪里 发布:2025-01-09 22:14:40 浏览:316