當前位置:首頁 » 編程語言 » thinkphpsqlas

thinkphpsqlas

發布時間: 2022-07-19 20:13:22

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. thinkphp高手幫我下!sql查詢用concat出錯

改用數組方式即可
$cate=$cat->field(array("id","oderby","concat(oderby,'-',id) as aaa"))->order('aaa')->select();

C. thinkphp這個怎麼解釋

如果需要對多表進行操作,可以這樣使用:

$Model->field('user.name,role.title')->table('think_useruser,think_rolerole')->limit(10)->select();


其中think_user和think_role是表

=>user和=>role分別是think_userthink_role的別名相當於sql語句中的as

望採納Thx

D. 這個sql語句怎麼改成thinkphp的查詢

寫一個model類就行

//文件名字:xxxxViewModel.php----這個是3.1版本
<?php
{
public$viewFields=array(
'表1'=>array('你要搜索的欄位在前台顯示,多個用逗號隔開','_type'=>'LEFT'),
'表2'=>array('你要搜索的欄位在前台顯示','_on'=>'表1的某一個欄位=表2的某一個欄位值')


);
}
//文件名字:xxxxViewModel.php----這個是3.2版本
<?php
namespaceAdminModel;
useThinkModelViewModel;
{
public$viewFields=array(
'表1'=>array('你要搜索的欄位在前台顯示,多個用逗號隔開','_type'=>'LEFT'),
'表2'=>array('你要搜索的欄位在前台顯示','_on'=>'表1的某一個欄位=表2的某一個欄位值')

);
}
?>

然後D函數select 就行

E. Thinkphp怎麼批量更新數據

thinkphp批量更新數據可以參考如下三種方法:
方法一:
//批量修改 data二維數組 field關鍵欄位 參考ci 批量修改函數 傳參方式
function batch_update($table_name='',$data=array(),$field=''){
if(!$table_name||!$data||!$field){
return false;
}else{
$sql='UPDATE '.$table_name;
}
$con=array();
$con_sql=array();
$fields=array();
foreach ($data as $key => $value) {
$x=0;
foreach ($value as $k => $v) {
if($k!=$field&&!$con[$x]&&$x==0){
$con[$x]=" set {$k} = (CASE {$field} ";
}elseif($k!=$field&&!$con[$x]&&$x>0){
$con[$x]=" {$k} = (CASE {$field} ";
}
if($k!=$field){
$temp=$value[$field];
$con_sql[$x].= " WHEN '{$temp}' THEN '{$v}' ";
$x++;
}
}
$temp=$value[$field];
if(!in_array($temp,$fields)){
$fields[]=$temp;
}
}
$num=count($con)-1;
foreach ($con as $key => $value) {
foreach ($con_sql as $k => $v) {
if($k==$key&&$key<$num){
$sql.=$value.$v.' end),';
}elseif($k==$key&&$key==$num){
$sql.=$value.$v.' end)';
}
}
}
$str=implode(',',$fields);
$sql.=" where {$field} in({$str})";
$res=M($table_name)->execute($sql);
return $res;
}
//測試
function test(){
$update_array=array();
for ($i=2; $i <7 ; $i++) {
$data=array();
$data['id']=$i;
$data['memeber_type']=2;
$data['memeber_type_state']=1;
$update_array[]=$data;
}
$res=$this->batch_update('yl_member',$update_array,id);
var_mp($res);
}

F. thinkphp 3.1.2 中M方法使用sql語句報錯問題;

你先輸出sql語句看看。echo getlastsql();exit;//輸出上一步sql語句。然後把語句拿到資料庫中執行看看,如果是對的,那你要檢查一下你的資料庫配置文件中資料庫連接是否正常。

G. thinkphp sql查詢合並

$zongji['新訂單']=$SQL->where("狀態in(0,1,2,4,8)and部門名稱='".$bmmc."'")->field("count(*)ascount,狀態")->group("狀態")->select();

大概就這個意思了 單獨的狀態可以用in +group 出來。剩下的就是用php數組轉換成你想要的數據。

未付的條件過多且無規律 還是直接寫比較好

H. thinkPHP 怎麼合並sql語句

$zongji['新訂單']=$SQL->where("狀態 in (0,1,2,4,8) and 部門名稱='".$bmmc."'")->field("count(*) as count,狀態")->group("狀態")->select();

大概就這個意思了 單獨的狀態可以用in +group 出來。剩下的就是用php數組轉換成你想要的數據。
未付的條件過多且無規律 還是直接寫比較好

I. thinkphp的資料庫查詢

SELECT*FROM((SELECT*FROMuserasis_mWHEREis_m.isMember='1')UNIONALL(SELECT*FROMuserasnot_isWHEREnot_is.isMember='0'ORDERBYRAND()LIMIT10))astORDERBYt.idDESCLIMIT10,20"

這是雛形,你可以進行優化。

拆分詳解:

  1. (SELECT * FROM user as is_m WHERE is_m.isMember = '1') 這個括弧中,是查詢會員,這個不用多說,你應該明白,至於為什麼要加別名,同表多次查詢自然要加別名以區分;

  2. (SELECT * FROM user as not_is WHERE not_is.isMember = '0' ORDER BY RAND() LIMIT 10 )這個括弧中,是查詢非會員,其中ORDER BY RAND() LIMIT 10是關鍵,它的意思就是從中隨機取十個結果;

  3. SELECT * FROM (會員 UNION ALL非會員) as t ORDER BY t.id DESC LIMIT 10,20。這里即用到了聯合查詢UNION ALL,也用到了子查詢,把聯合查詢的結果作一個結果集,然後從中進行查詢,查詢這個結果集的時候,使用ORDER BY和LIMIT進行分頁處理。

以上,就是該語句的詳解了,當然,其中也需要你做一些處理。

比如要先進行判斷會員數滿沒滿三十個,滿了則無需如此,直接使用會員,沒滿則計算出還差多少個,在查詢非會員那裡LIMIT 數字才好使用;

至於分頁,這個又是另一個問題了,你應該知道怎麼分頁的。

熱點內容
編譯nm 發布:2025-03-03 07:39:47 瀏覽:779
android藍牙斷開 發布:2025-03-03 07:39:47 瀏覽:805
devc沒有編譯按鈕 發布:2025-03-03 07:09:56 瀏覽:747
24核32g配置怎麼樣 發布:2025-03-03 07:06:54 瀏覽:553
和平精英哪裡顯示自己的賬號密碼 發布:2025-03-03 06:56:16 瀏覽:584
我的世界伺服器成就 發布:2025-03-03 06:50:59 瀏覽:340
java壓力測試 發布:2025-03-03 06:45:18 瀏覽:491
淘寶源碼編輯 發布:2025-03-03 06:43:37 瀏覽:1001
分鏡頭就是腳本嗎 發布:2025-03-03 06:38:07 瀏覽:799
消消樂沒有當前配置怎麼回事 發布:2025-03-03 06:34:57 瀏覽:680