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

thinkphp返回sql語句

發布時間: 2022-06-19 06:48:31

⑴ THINKPHP sql語句的問題

問題的所在, 原來這個跟入口文件 引入./ThinkPHP/ThinkPHP.php的位置有關系, 首先大家都應該知道載入重要核心文件都要用到
require("./ThinkPHP/ThinkPHP.php");這條代碼的位置很有講究,(我的環境是thinkphp3.1.3)
大家可以嘗試下, 如果我的代碼是

//3.載入核心類
require("./ThinkPHP/ThinkPHP.php");
//1.創建目錄名稱
define("APP_NAME","Home");
//2.創建目錄路徑
define("APP_PATH","./Home/");
//開啟調試模式
define('APP_DEBUG',true);

復制代碼

這樣放置的話結果是 在與ThinkPHP源碼目錄在同一個級別下生成的目錄文件,
情況二:

//1.創建目錄名稱
define("APP_NAME","Home");
//2.創建目錄路徑
define("APP_PATH","./Home/");
//3.載入核心類
require("./ThinkPHP/ThinkPHP.php");
//開啟調試模式
define('APP_DEBUG',true);

復制代碼

情況二的方法,會生成一個站點Home目錄結構都是好的,但問題是在調試模式下無法顯示sql生成語句。這是因為 當引入核心類庫文件 後就已經執行默認的設置了,所以 define('APP_DEBUG',true); 載入有問題。
想要解決以上兩個問題就必須要require('./ThinkPHP/ThinkPHP.php');這條代碼寫在最後一行。那麼你們所說的sql無法顯示就神奇的出現了。

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

原生sql查詢有
query()

execute()
兩個方法:
query():用於
sql
查詢操作,並返回符合查詢條件的數據集
execute():更新和寫入數據的
sql
操作,返回影響的記錄數
public function read(){
// 實例化一個空模型,沒有對應任何數據表
$ = m();
//或者使用 $ = new model();
$list = $->query("select * from user where uid<5");
if($list){
$this->assign('list', $list );
$this->display();
} else {
$this->error($->geterror());
}
}public function read(){
header("content-type:text/html; charset=utf-8");
// 實例化一個空模型,沒有對應任何數據表
$ = m();
//或者使用 $ = new model();
$num = $->execute("update user set email = '[email protected]' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無記錄更新';
}
}

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

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

褔遞達

⑷ Thinkphp 我想知道下面語句變成sql語句是什麼樣,請問怎樣輸出

在後面跟著

echo M(taskend) ->getLastSql();

⑸ 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 語句。

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

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

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

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

⑺ thinkphp怎麼輸出sql語句

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

echo$model->getLastSql();

⑻ 怎樣在thinkphp裡面執行原生的sql語句

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

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

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

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

$list=$Dao->query("select*fromuserwhereuid<5");
if($list){
$this->assign('list',$list);
$this->display();
}else{
$this->error($Dao->getError());
}
}
publicfunctionread(){
header("Content-Type:text/html;charset=utf-8");
//實例化一個空模型,沒有對應任何數據表
$Dao=M();
//或者使用$Dao=newModel();

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

⑼ thinkphp 里sql 語句如何解讀

這個不是原生寫法,這是tp固有的寫法,裡面對語句做了封裝,就是查詢fields表裡條件是model為空或其他條件符合的值。明白了吧!

⑽ thinkphp 這個sql語句怎麼用thinkphp的方式查詢

$table=M('表名');
$where['id']=1;//這樣寫比較好,數組形式,2個where相當於id=1and..
$list=$table->field('bb')->where($where)->select();
echo$table->getlastsql();//輸出最後查詢的一句SQL一般校驗SQL錯誤都是從這里來的
$this->assign('list',$list);
$this->display('templates_name');