當前位置:首頁 » 編程語言 » thinkphp得到sql語句
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

thinkphp得到sql語句

發布時間: 2022-04-27 06:52:46

⑴ thinkphp怎麼輸出sql語句

ThinkPHP獲取最後一條已執行SQL語句

echo$model->getLastSql();

⑵ php thinkphp怎麼獲取sql執行結果

都是有返回值的,添加成功返回id,失敗則返回false;修改成功返回true,失敗則返回0,sql語句執行錯誤返回的是false;刪除和修改一樣,查詢成功返回數組形式的結果集,否就返回false。

$data = D("User")->select();

$data就是接收的sql執行結果

⑶ ThinkPHP里怎麼直接執行一句SQL語句 - PHP框架開發

$waw = M();
$res = $waw->query($sql); 或 $res = $waw->execute($sql);
由於$sql中包含了表名,實例化模型時可以為空。
註:query()與execute()是有區別的,不能亂用,詳見ThinkPHP光放手冊驅動擴展部分。

褔遞達

⑷ 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]

(4)thinkphp得到sql語句擴展閱讀:

sql的應用原則:

在關系資料庫實現過程中,第一步是建立關系模式,定義基本表的結構,即該關系模式是哪些屬性組成的,每一屬性的數據類型及數據可能的長度、是否允許為空值以及其它完整性約束條件。

定義基本表:

CREATE TABLE<表名>(<列名1><數據類型>[列級完整性約束條件]

[,<列名2><數據類型>[列級完整性約束條件]]…

[,<-列名n><數據類型>[列級完整性約束條件]]

[,表列級完整性約束條件]);

說明:

1、<>中是SQL語句必須定義的部分,[]中是SQL語句可選擇的部分,可以省略的。

2、CREATE TABLE表示是SQL的關鍵字,指示本SQL語句的功能。

3、<表名>是所要定義的基本表的名稱,一個表可以由一個或若干個屬性(列)組成,但至少有一個屬性,不允許一個屬性都沒有的表,這樣不是空表的含義。多個屬性定義由圓括弧指示其邊界,通過逗號把各個屬性定義分隔開,各個屬性名稱互不相同,可以採用任意順序排列,一般按照實體或聯系定義屬性的順序排列,關鍵字屬性組在最前面,這樣容易區分,也防止遺漏定義的屬性。

⑸ 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不區分這些大小寫的。

⑹ thinkphp 怎麼寫sql語句

$haha = M();
$res = $haha->query($sql);
或 $res = $waw->execute($sql);
$sql中包含了表名,實例化模型時可以為空。
注意query是查功能,execute是增刪改功能

⑺ 關於thinkPHP中 foreach 裡面執行sql語句

原生SQL查詢有 query() 和 execute() 兩個方法:
query():用於 SQL 查詢操作,並返回符合查詢條件的數據集
execute():更新和寫入數據的 SQL 操作,返回影響的記錄數

public function read(){

// 實例化一個空模型,沒有對應任何數據表
$Dao = M();
//或者使用 $Dao = new Model();

$list = $Dao->query("select * from user where uid<5");
if($list){
$this->assign('list', $list );
$this->display();
} else {
$this->error($Dao->getError());
}
}

⑻ thinkphp怎麼獲取添加的sql語句信息

  1. thinkphp中的add方法獲取sql錯誤消息可以調用getDbError()函數。
    getDbError函數可以獲取資料庫的錯誤信息。
    function GetRandomAd()
    {
    global $myDB;
    $today = date('j');
    $ql = "SELECT * FROM reklama WHERE today<>'$today' OR realimpr<impr OR impr=0 ORDER BY RAND() LIMIT 1";
    $result = $myDB->Execute($ql) or die(GetDbError($myDB->ErrorMsg()));
    $r_id = $result->Fields("aid");
    $r_ad_text = $result->Fields("ad_text");
    $r_today = $result->Fields("today");
    $result->Close();
    if ($r_id)
    {
    if ($today != $r_today) $ql = "UPDATE reklama SET realimpr=1, today='$today' WHERE aid='$r_id'";
    else $ql = "UPDATE reklama SET realimpr=realimpr+1 WHERE aid='$r_id'";
    $result = $myDB->Execute($ql) or die(GetDbError($myDB->ErrorMsg()));
    $result->Close();
    }
    return $r_ad_text;

    }

  2. public function read(){
    // 實例化一個空模型,沒有對應任何數據表
    $Dao = M();
    //或者使用 $Dao = new Model();

    $list = $Dao->query("select * from user where uid<5");
    if($list){
    $this->assign('list', $list );
    $this->display();
    } else {
    $this->error($Dao->getError());
    }
    }

    public function read(){
    header("Content-Type:text/html; charset=utf-8");
    // 實例化一個空模型,沒有對應任何數據表
    $Dao = M();
    //或者使用 $Dao = new Model();

    $num = $Dao->execute("update user set email = '[email protected]' where uid=3");
    if($num){
    echo '更新 ',$num,' 條記錄。';
    }else{
    echo '無記錄更新';
    }
    }

    public function read(){
    $Dao = M("User");
    $list = $Dao->query("select __TABLE__ from user where uid<5");

    }


    原生SQL查詢

    盡管ThinkPHP內置了大量的數據操作方法,但ThinkPHP仍保留了對原生SQL查詢的支持,以便滿足復雜查詢的需要和一些特殊的數據操作。

    SQL查詢的返回值是直接返回DB類的查詢結果,沒有做任何的處理,而且可以支持查詢緩存

    原生SQL查詢有 query() 和 execute() 兩個方法:

    query():用於 SQL 查詢操作,並返回符合查詢條件的數據集

    execute():更新和寫入數據的 SQL 操作,返回影響的記錄數

    query()

    query() 方法是用於 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數據集。

    例子:

    對於 query() 方法返回的數據集,跟 select() 一樣,可以在模板里直接循環輸出。

    execute()

    execute() 方法用於更新和寫入數據的 SQL 操作(註:非查詢操作,無返回數據集),返回影響的記錄數。

    例子:

    如果查詢比較復雜或一些特殊的數據操作不能通過 ThinkPHP 內置的 ORM 和 ActiveRecord 模式實現時,就可以通過直接使用原生 SQL 查詢來實現。

    注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應該寫實際的表名字(包括前綴)。

    小技巧

    原生 SQL 查詢需要在查詢語句中寫上對應的表名,如果表名有改動的時候,就需要逐行去更改 SQL 語句中的表名字,這樣不免麻煩。ThinkPHP 提供了一個小技巧來幫助解決這個問題。

    在 SQL 語句中,以 __TABLE__ 來替代真實的表名,而在實例化模型時,仍以表名為參數,如:

    系統在解析的時候會自動替換成當前模型對應的表名,這樣就可以做到即使表名有所變化,只需修改實例化對應的表名即可而不用修改原生的 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]

你好,一共有兩種方法可以列印sql語句,具體實現方法可參照這篇文章:

thinkphp5 怎麼列印sql語句