tp5列印sql
A. thinkphp5 怎麼用odbc連接sql2000 ,報錯,求解
因需求改變要使用到PHP連接sqlserver2000資料庫操作(之前是用Java連接寫的介面)。
1.准備開發框架:thinkphp5
2.系統開發環境ubuntu系統(這里需要配置odbc_dblib擴展)
3.tp5配置編寫
'type' => 'dblib',
// 伺服器地址
'hostname' => '1422222.168222.10222.103222321',
// 資料庫名
'database' => 'voucher111333',
// 用戶名
'username' => 'voucher',
// 密碼
'password' => 'qwyf123456',
// 埠
'hostport' => '1433',
4.連接資料庫成功,能取回數據(由於mssql編碼為gb2312,需轉換為utf-8,才不會出現中文亂碼問題)
5.php代碼如下:
$dbDB = new PDO ("dblib:host=ip;dbname=name", "232", "123456");
$sql = "SELECT count(1) FROM tablename";
foreach ($dbDB->query($sql) as $row) {
var_mp($row);
}
B. tp5連接資料庫後查詢報錯
遇到的情景:TP框架中,如果一個SQL語句是錯誤的,當執行該SQL時頁面就會報錯結束執行,所以也就無法用$this->getLastSql()列印出錯誤的語句。
問題:想要查看那條錯誤的SQL語句是怎樣的
解決方法:如圖,在Driver.class.php中parseSql函數中加上一句 echo $sql.'<br />'; 就可以在頁面中列印出所有執行的SQL語句(不管是正確的還是錯誤的都會列印出來)!
C. TP5框架如何用Db類查詢這條sql語句
你這段sql,前面那個括弧是沒必要的,全部是and
Db::name('goods')->where('id',1)->where('price',1)
->whereIn('status',[0,2]);
這個寫法可以達到你要的效果
也可以通過where嵌套,生成出來 就是你寫的那種
Db::name('goods')->where('id',1)->where('price',1)
->where(function($db){
return$db->where('status',1)->whereOr('status',2);
});
希望對你有幫
D. 請教大神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語句
E. TP5在執行SQL語句時老是服這個錯誤怎麼回事
拋出異常,沒有有錯誤訊息,是因為你在catch中沒有記錄, 如果要有錯誤信息,就修改catch中的語句, catch(Exception ex) { MessageBox.Show(ex.Message); }
F. tp5 搜索框防sql注入要注意什麼
最有效的方法是使用參數化查詢就能避免sql注入了,防止跨站的話可以使用微軟白名單。或者關鍵字黑名單。
G. thinkphp5 怎麼同時連接mysql和sqlserver 2種資料庫
到微軟官網下載文件,網址:網路搜索選擇「SQLSRV20.EXE」,點擊"next"(下一步),進行下載右鍵解壓到當前目錄,把這兩個文件拷貝到PHP目錄下的ext目錄下下圖是拷貝後的結果,請參考,不要拷錯了。打開php-ini在文件中設置,加上下面兩行代碼,如下圖下面這里設置為On,保存,重啟服務,如下圖修改thinkphp配置文件,如下圖thinkphp控制器文件,隨便查個sqlserver表中的數據,看是否能成功列印,如果成功列印,那麼證明資料庫連接成功。如果不能正確列印,那麼看報錯提示,在按照提示解決問題。
H. 請教大神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]
I. 在TP5框架里,列印兩次sql結果不一致
你查詢的時候那些記錄是否有被其他應用修改或者鎖定,查詢中是否允許臟讀之類的。
貼出語句來看看。