① thinkphp如何返回查詢到的資料庫表的列數
代碼應該是這樣
$id = rand(0,表中數胡拆據條數);
$data = $data['id']; // 我不明白你這里是什麼意思
$arr = $m->where($data >= $id)->limit(8) ->select();
不過我總感覺上面的有問題
$id = rand(0,表中數據條數);
$arr = $m->where("id >= $id")->limit(8) ->select();
不對的話就試試這個,我個人橘做腔覺得這樣是對的,不明白你那圓衫個$data['id'];是幹嘛用的!
② thinkphp3.2.3 執行原生sql語句(SET SQL_QUOTE_SHOW_CREATE = 1)時報錯,是怎麼回事
query 執行SQL查詢操作
$Model = M()
$Model->query("select * from think_user where status=1");
如果數據非法或者查詢錯誤則返回false
否則返回查詢結果數據集(同select方法)
你用插入語句 返回的不是數組 所以就報錯了吧
execute用於更新和寫入數據的sql操作
$Model = M()
$Model->execute("update think_user set name='thinkPHP' where status=1");
如果數據非法或者查詢錯誤則返回false
否則返回影響的記錄數
③ thinkphp這句查詢語句換成sql語句是多少
要看前面定義的查詢條件$where具體是什麼
select id,name from tablename where $where order by status
④ thinkphp中的add方法怎麼獲取sql錯誤消息
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;
}
⑤ ThinkPHP模型執行失敗,怎麼看構造的sql語句
執行失敗,如果是sql語句的語法錯誤,你打開thinkphp的調試模式,它會提示你什麼錯誤,並且把sql語句列印出來。
如果不是sql語句的語法錯誤,而是構造的sql語句不能達到你的要求,你需要查看的話,你可以使用M()->getLastSql();這個方法可以查看最後執行的一句sql語句,只要把這句放到你想要查看的構造的sql語句的後面就可以了。想要查看就用print_r把返回值列印出來就可以了
⑥ php thinkphp怎麼獲取sql執行結果
都是有返回值的,添加成功返回id,失敗則返回false;修改成功返回true,失敗則返回0,sql語句執行錯誤返回的是false;刪除和修改一樣,查詢成功返回數組形式的結果集,否就返回false。
$data = D("User")->select();
$data就是接收的sql執行結果
⑦ thinkphp add()和save()執行完畢,有返回值,但是資料庫並未有修改
有沒有傳錯模型,估計是添加到其他地方去了
⑧ 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 執行了哪些sql
fetchSql
fetchSql用於直接返舉銀明隱回SQL而不是執行查正槐宴詢,適用於任何的CURD操作方法。
⑩ 怎樣在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'無記錄更新';
}
}