thinkphp 数据库查询怎么查

thinkphp 数据库查询怎么查,第1张

thinkphp如何查询数据库

数据库查询

ThinkPHP内置了非常灵活的查询方法,可以快速的进行数据查询 *** 作。

查询条件可以用于CURD等任何 *** 作,作为where方法的参数传入即可。

ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全。

查询方式

一、使用字符串作为查询条件

这是最传统的方式,但是安全性不高,例如:

1

2

$User = M("User"); // 实例化User对象

$User->where('type=1 AND status=1')->select();

最后生成的SQL语句是

1

SELECT FROM think_user WHERE type=1 AND status=1

二、使用数组作为查询条件

1

2

3

4

5

$User = M("User"); // 实例化User对象

$condition['name'] = 'thinkphp';

$condition['status'] = 1;

// 把查询条件传入查询方法

$User->where($condition)->select();

最后生成的SQL语句是

1

SELECT FROM think_user WHERE 'name'='thinkphp' AND status=1

如果进行多字段查询,那么字段之间的默认逻辑关系是 逻辑与 AND,但是用下面的规则可以更改默认的逻辑判断,通过使用 _logic 定义查询逻辑:

1

2

3

4

5

6

$User = M("User"); // 实例化User对象

$condition['name'] = 'thinkphp';

$condition['account'] = 'thinkphp';

$condition['_logic'] = 'OR'; //定义查询逻辑

// 把查询条件传入查询方法

$User->where($condition)->select();

最后生成的SQL语句是

1

SELECT FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'

三、使用对象方式来查询 (这里以stdClass内置对象为例)

1

2

3

4

5

6

$User = M("User"); // 实例化User对象

// 定义查询条件

$condition = new stdClass();

$condition->name = 'thinkphp';

$condition->status= 1;

$User->where($condition)->select();

最后生成的SQL语句和上面一样

1

SELECT FROM think_user WHERE `name`='thinkphp' AND status=1

使用对象方式查询和使用数组查询的效果是相同的,并且是可以互换的,大多数情况下,我们建议采用数组方式更加高效,后面我们会以数组方式为例来讲解具体的查询语言用法。

表达式查询

上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,并且可以用于数组或者对象方式的查询(下面仅以数组方式为例说明),查询表达式的使用格式:

1

$map['字段名'] = array('表达式','查询条件');

表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:

1

2

3

4

$map['id']  = array('eq',100);  id = 100;

$map['id']  = array('egt',100);id >= 100

$map['name'] = array('like','thinkphp%'); name like 'thinkphp%' 模糊查询

$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND'); (a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')

本文来自ThinkPHP框架技术文章栏目:>

以上就是thinkphp如何查询数据库的详细内容,更多请关注php中文网其它相关文章!

本文实例讲述了PHP利用pdo_odbc实现连接数据库。分享给大家供大家参考,具体如下:

目的:从sql

server数据库里面把某个视图文件调用出来,以键值对的方式显示在页面上。

利用pdo

odbc来实现PHP连接数据库:

在PHP配置文件里面开启pdo_odbcdll服务。重启Apache服务器。

在ThinkPHP51的项目中在模块里添加config添加规定好的样式数据库:

代码如下:

<php

return

[

//

数据库类型

'type'

=>

'sqlsrv',

//

服务器地址

'hostname'

=>

'localhost',

//

数据库名

'database'

=>

'mysql',

//

用户名

'username'

=>

'sa',

//

密码

'password'

=>

'123456',

//

端口

'hostport'

=>

'',

//

连接dsn

'dsn'

=>

'odbc:Driver={SQL

Server};Server=localhost;Database=mysql',

//

数据库连接参数

'params'

=>

[],

//

数据库编码默认采用utf8

'charset'

=>

'utf8',

//

数据库表前缀

'prefix'

=>

'',

//

数据库调试模式

'debug'

=>

true,

//

数据库部署方式:0

集中式(单一服务器),1

分布式(主从服务器)

'deploy'

=>

0,

//

数据库读写是否分离

主从式有效

'rw_separate'

=>

false,

//

读写分离后

主服务器数量

'master_num'

=>

1,

//

指定从服务器序号

'slave_no'

=>

'',

//

是否严格检查字段是否存在

'fields_strict'

=>

true,

//

数据集返回类型

'resultset_type'

=>

'array',

//

自动写入时间戳字段

'auto_timestamp'

=>

false,

//

时间字段取出后的默认时间格式

'datetime_format'

=>

'Y-m-d

H:i:s',

//

是否需要进行SQL性能分析

'sql_explain'

=>

false,

//

Builder类

'builder'

=>

'',

//

Query类

'query'

=>

'\\think\\db\\Query',

//

是否需要断线重连

'break_reconnect'

=>

false,

//

断线标识字符串

'break_match_str'

=>

[],

];

>

在控制器controller里面建一个控制文件Testphp

代码如下:

<php

namespace

app\index\controller;

use

think\Db;

use

think\Controller;

class

Test

extends

Controller

{

public

function

zz(){

$data=Db::view('View_2')->select();

echo

json_encode($data);

}

}

>

最后调用入口文件即可访问。

>

比如有个user的表,且表里有数据。

$user=M('User');

$list=$user->find();

dump($list);

若有数据,则表示连接成功。土办法。如果楼主还有不明白的,建议去后盾人找找相关教学视频看看。

//默认数据库链接

'DB_TYPE'=>'数据库类型',

'DB_HOST'=>'数据库地址',

'DB_NAME'=>'数据库名',

'DB_USER'=>'登录帐号',

'DB_PWD'=>'登录密码',

'DB_PORT'=>'端口号',

'DB_PREFIX'=>'表前缀',

//数据库配置1'

DB_CONFIG1' = array(

    'db_type'  => '类型',    

    'db_user'  => '帐号',    

    'db_pwd'   => '密码',    

    'db_host'  => '地址',    

    'db_port'  => '端口',    

    'db_name'  => '数据库名'

    ),

//数据库配置2'

DB_CONFIG2' = array(

    'db_type'  => '类型',    

    'db_user'  => '帐号',    

    'db_pwd'   => '密码',    

    'db_host'  => '地址',    

    'db_port'  => '端口',    

    'db_name'  => '数据库名'

    ),

//切换 *** 作

$this->db(0,"DB_CONFIG1")->query("SQL");    //默认数据库配置

$this->db(1,"DB_CONFIG1")->query("SQL");    //第一个配置

$this->db(2,"DB_CONFIG2")->query("SQL");    //第二个配置

 

还有几个采纳升级   谢谢

在应用配置目录或者模块配置目录(不清楚配置目录位置的话参考配置章节)下面的databasephp中(后面统称为数据库配置文件)配置下面的数据库参数:

return [

// 数据库类型

'type' => 'mysql',

// 服务器地址

'hostname' => '127001',

// 数据库名

'database' => 'thinkphp',

// 数据库用户名

'username' => 'root',

// 数据库密码

'password' => '',

// 数据库连接端口

'hostport' => '',

// 数据库连接参数

'params' => [],

// 数据库编码默认采用utf8

'charset' => 'utf8',

// 数据库表前缀

'prefix' => 'think_',

];

系统默认支持的数据库type包括:

type 数据库

mysql MySQL

sqlite SqLite

pgsql PgSQL

sqlsrv SqlServer

type参数支持命名空间完整定义,不带命名空间定义的话,默认采用\think\db\connector作为命名空间,如果使用应用自己扩展的数据库驱动,可以配置为:

// 数据库类型

'type' => '\org\db\Mysql',

表示数据库的连接器采用 \org\db\Mysql类作为数据库连接驱动,而不是默认的\think\db\connector\Mysql。

以上就是关于thinkphp 数据库查询怎么查全部的内容,包括:thinkphp 数据库查询怎么查、PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】、thinkphp 怎么 检测是否跟数据库连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9445762.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存