當前位置:首頁 » 編程語言 » 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服務了。

熱點內容
我的世界tim伺服器ip 發布:2025-01-10 08:55:40 瀏覽:343
為什麼gg都是伺服器無響應 發布:2025-01-10 08:53:27 瀏覽:587
qq消息記錄加密 發布:2025-01-10 08:52:46 瀏覽:118
掃描wifi密碼在哪裡找 發布:2025-01-10 08:52:40 瀏覽:871
股票c語言 發布:2025-01-10 08:52:31 瀏覽:78
資料庫監測 發布:2025-01-10 08:51:57 瀏覽:204
solidworks緩存 發布:2025-01-10 08:51:56 瀏覽:712
sql語言有什麼 發布:2025-01-10 08:51:48 瀏覽:976
php開發實例教程 發布:2025-01-10 08:49:29 瀏覽:497
android顯示隱藏控制項 發布:2025-01-10 08:49:23 瀏覽:742