当前位置:首页 » 编程语言 » 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 数字才好使用;

至于分页,这个又是另一个问题了,你应该知道怎么分页的。

热点内容
android下拉刷新通用 发布:2025-02-01 05:03:51 浏览:905
紫光存储最近 发布:2025-02-01 04:58:49 浏览:380
sqlserver重命名 发布:2025-02-01 04:56:24 浏览:428
iisftp被动模式 发布:2025-02-01 04:41:50 浏览:350
车载安卓怎么安装软件 发布:2025-02-01 04:30:50 浏览:469
安卓系统su程序是什么 发布:2025-02-01 04:25:42 浏览:475
android代码行数统计 发布:2025-02-01 04:20:47 浏览:216
快速喊话脚本 发布:2025-02-01 04:16:48 浏览:885
如何分辨普拉多的配置 发布:2025-02-01 04:11:45 浏览:681
linuxc文件删除 发布:2025-02-01 04:11:33 浏览:218