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 怎么 检测是否跟数据库连接等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)