当前位置:首页 » 数据仓库 » phpmongodb连接数据库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

phpmongodb连接数据库

发布时间: 2023-02-02 14:11:51

❶ PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】

本文实例讲述了PHP利用pdo_odbc实现连接数据库。分享给大家供大家参考,具体如下:
目的:从sql
server数据库里面把某个视图文件调用出来,以键值对的方式显示在页面上。
利用pdo
odbc来实现PHP连接数据库:
在PHP配置文件里面开启pdo_odbc.dll服务。重启Apache服务器。
在ThinkPHP5.1的项目中在模块里添加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里面建一个控制文件Test.php
代码如下:
<?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);
}
}
?>
最后调用入口文件即可访问
http://localhost:81/1111/tp5/public/index/test/zz
我的效果:
[{"111":"123","1112":"LLP","232":"1","ROW_NUMBER":"1"},{"111":"123","1112":"BB","232":"2","ROW_NUMBER":"2"}]
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend
FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
您可能感兴趣的文章:ThinkPHP实现多数据库连接的解决方法tp5(thinkPHP5)框架实现多数据库查询的方法ThinkPHP3.1新特性之多数据库操作更加完善tp5(thinkPHP5)框架连接数据库的方法示例PHP7使用ODBC连接SQL
Server2008
R2数据库示例【基于thinkPHP5.1框架】thinkPHP5实现的查询数据库并返回json数据实例tp5(thinkPHP5)操作mongoDB数据库的方法tp5(thinkPHP5)框架数据库Db增删改查常见操作总结thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例

❷ MongoDB在ThinkPHP里面怎么进行数据库操作

连接数据库
$conn=new Mongo(“mongodb://sa:123@localhost”); #带用户名密码
选择数据库和集合
$db=$conn->selectDB(“mydb”);
$collection = $db->selectCollection(‘column’);
增删改查
1.插入
$array=array(‘column_name’=>’col’.rand(100,999),’column_exp’=>’xiaocai’);
$result=$collection->insert($array); #简单插入
2. 修改更新
$where=array(‘column_name’=>’col123′);
$newdata=array(‘column_exp’=>’GGGGGGG’,'column_fid’=>444);
$result=$collection->update($where,array(‘$set’=>$newdata));
3.删除
$where=array(‘column_name’=>’col685′);
$result=$collection->update($where,array(‘$unset’=>’column_exp’));
4.查询
$result = $collection->find();

❸ thinkphp6 版本 mongodb 连表查询 案例

# https://www.cnblogs.com/cangqinglang/p/14858131.html
public function index(){

// 方法1 您可以使用 $toObjectId聚合实现此目的,该聚合仅将字符串ID转换为mongoose objectId
// https://blog.csdn.net/az9996/article/details/110141289
// 多表查询 https://blog.csdn.net/eric_to/article/details/90093806

$pipeline = [
['$addFields'=>['company_id'=>['$toObjectId'=>'$company_id']]],
['$match'=>['$expr'=>['$eq'=>["\$company_id", "$\$company_Id"]]]],
];
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx限公司"]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
"let"=>["company_Id"=>"\$_id" ],
"pipeline"=>$pipeline,
'as'=>'company_pay'
],
]
];
// php 执行 产生了 2571 条数据 但是 用 db.runCommand() 执行 打印的 sql 语句 只有 101 条记录
mp(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));

mp(Db::connect('mongo')->getLastSql());

// 以下 mongodb sql 在 数据库 查询 通过 有 2571 条记录
// db.getCollection("oa_company").aggregate([
// {
// "$lookup": {
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }
// }
// ])
// 以下 mongodb sql 在 数据库 查询 通过 只有 101 条记录
// db.runCommand({
// "aggregate":"oa_company",
// "pipeline":[
// {
// "$lookup":{
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }

// }
// ],
// "explain":false
// })

// 方法2 或者使用$toString聚合 可以通过 2571

// db.getCollection('oa_company').aggregate([
// { "$addFields": { "companyidStr": { "$toString": "$_id" }}},
// { "$lookup": {
// "from": "oa_company_member_pay",
// "localField": "companyidStr",
// "foreignField": "company_id",
// "as": "pay"
// }}
// ])
/*
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx有限公司"]],
['$addFields'=>['companyidStr'=>['$toString'=>'$_id']]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
'localField'=>'companyidStr',
'foreignField'=>'company_id',
'as'=>'company_pay'
],
]
];
// php 执行 产生了 2571 条数据 但是 用 db.runCommand() 执行 打印的 sql 语句 只有 101 条记录
mp(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));

mp(Db::connect('mongo')->getLastSql());

// db.cmd({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});

// 下面 执行 不可以 只有 101 条数据
db.runCommand({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});

*/

}

❹ PHP实现的pdo连接数据库并插入数据功能简单示例

本文实例讲述了PHP实现的pdo连接数据库并插入数据功能。分享给大家供大家参考,具体如下:
创建配置文件
pdo_config.php
<?php
$db_Type
=
"mysql";//数据库类型
$host
=
"localhost";//主机名
$dbName
=
"test";//数据库名
$userName
=
"root";//用户名
$password
=
"root";//密码
$dsn
=
"{$db_Type}:host={$host};dbname={$dbName}";
?>
pdo插入数据库
pdo_insert.php
<?php
header('Content-type:text/html;
charset=utf-8');
require
'pdo_config.php';
try{
$pdo
=
new
PDO
($dsn,$userName,$password);//创建一个连接对象
$pdo->exec('set
names
utf8');//设置编码
$sql
=
"INSERT
student
(name,email)
VALUES
('李四','[email protected]')";
$pdo->exec($sql);
}catch
(PDOException
$e){
die('操作失败'.$e->getMessage());
}
//关闭连接
$pdo
=
null;
?>
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:关于php连接mssql:pdo
odbc
sql
serverPHP5中使用PDO连接数据库的方法PHP中PDO连接数据库中各种DNS设置方法小结ThinkPHP框架基于PDO方式连接数据库操作示例PHP使用ODBC连接数据库的方法tp5(thinkPHP5)框架连接数据库的方法示例PHP7使用ODBC连接SQL
Server2008
R2数据库示例【基于thinkPHP5.1框架】tp5(thinkPHP5)操作mongoDB数据库的方法thinkPHP5实现数据库添加内容的方法tp5(thinkPHP5)框架数据库Db增删改查常见操作总结PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】

❺ php mongoclient 连接 mongodb ,出现 "No candidate servers found"错误。实在没办法,求大神们解答。

表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器)一、连接数据库使用下面的代码创建一个数据库链接复制代码代码如下:listDBs());//能打印出数据库数组,看看有几个数据库。?>如图:上图说有一个数据库名字叫local,总大小1个字节,他是空的。看见ok表示运行成功。现在你可以使用$connection链接来操作数据库了选择数据库使用下面的代码来选择一个数据库复制代码代码如下:dbname;?>这里的数据库并不一定是一个已经存在的数据库,如果所选择的数据库不存在,则会新建一个数据库,所以在选择数据库的时候,注意一定要填上正确的数据库名如果拼写错误的话,很有可能会新建一个数据库复制代码代码如下:mybiglongdbname;//做一些事情$db=$connection->mybiglongdbnme;//现在会连上一个新的数据库?>获取一个集合获取一个集合跟选择数据库拥有相同的语法格式复制代码代码如下:baz;//选择数据库$collection=$db->foobar;//选择foobar集合//或者使用更简洁的方式$collection=$connection->baz->foobar;?>插入一个文档多维数组是可以被储存到数据库中的基本单元一个随机的文档可能是这样复制代码代码如下:“MongoDB”,“type”=>“database”,“count”=>1,“info”=>(object)array(“x”=>203,“y”=>102),“versions”=>array(“0.9.7″,“0.9.8″,“0.9.9″));?>注意:你可以嵌套数组与对象,对象与文档在mongodb中几乎是一样的,你可以使用$doc调用一个文档或对象,但是info字段总是一个对象而不是一个文档,本约束适用于所有文档使用MongoCollection::insert()插入一个文档复制代码代码如下:foo->bar;$collection->insert($doc);?>mongodb的insert()、save(),区别主要是:若存在主键,insert()不做操作,而save()则更改原来的内容为新内容。存在数据:{_id:1,"name":"n1"}insert({_id:1,"name":"n2"})会提示错误save({_id:1,"name":"n2"})会把n1改为n2。使用MongoCollection::findOne()查询文档为了证明上面那段代码的数据已经插入到数据库里了,我们进行简单的findOne()操作以得到集合中的第一个文档数据,这种方法只返回一个文档数据,这种方法适用于在你的查询语句的时候只匹配一个文档或者你只关心第一条数据复制代码代码如下:findOne();var_mp($obj);?>你会看到下列结果复制代码代码如下:array(5){["_id"]=>object(MongoId)#6(0){}["name"]string(7)“MongoDB”["type"]=>string(8)“database”["count"]=>int(1)["info"]=>array(2){["x"]=>int(203)["y"]=>int(102)}["versions"]array(3){[0]=>string(5)“0.9.7″[1]=>string(5)“0.9.8″[2]=>string(5)“0.9.9″}}注意_id字段自动加载了文档上,MongoDB储存元素中以_以及$开头的都是供内部使用的添加文档为了做一些更有趣的事情,我们添加简单的文档到集合中,这些文档如下复制代码代码如下:value);?>我们可以使用循环相当有效的插入数据复制代码代码如下:insert(array(“i”=>$i));}?>注意:我们可以插入不同的字段在同一字符集中,在这方面意味着MongoDB拥有非常自由的储存模式在一个集合中计算文档的数量现在我们插入了101个文档(我们用循环插入了100个,之前还插入了一个),我们可以使用count()来看看我们的数据是不是都被插入进去了复制代码代码如下:count();?>这段代码将打印出101MongoCollection::count()也可以查询字段数据使用游标得到集合中的所有文档为了得到集合中的所有文档,我们可以使用MongoCollection::find()方法,find()方法返回一个MongoCursor对象,可以让我们重复得到查询所匹配的的文档复制代码代码如下:find();foreach($cursoras$id=>$value){echo“$id:“;var_mp($value);}?>这样我们会打印出集合中的这101个文档,$id就是文档中的_id字段,$value就是文档本身为查询规定一个标准我们可以通过find()方法得到集合中的文档子集,例如,我们要查询出集合中i字段为71的文档,我们可以使用下列方法复制代码代码如下:71);$cursor=$collection->find($query);while($cursor->hasNext()){var_mp($cursor->getNext());}?>我们将打印如下数据复制代码代码如下:array(2){["_id"]=>object(MongoId)#6(0){}["i"]=>int(71)["_ns"]=>“testCollection”}为查询设定一个范围我们可以通过find()创建一个查询语句以得集合中的一个子集,例如如果我们得到所有”i”>50的文档,我们可以使用如下代码复制代码代码如下:array(‘$gt'=>50));//注意'$gt'两边的单引号$cursor=$coll->find($query);while($cursor->hasNext()){var_mp($cursor->getNext());}?>我们同样可以得到20array(“\$gt”=>20,“\$lte”=>30));$cursor=$coll->find($query);while($cursor->hasNext()){var_mp($cursor->getNext());}?>我们非常容易漏掉$美元符号,你也可以选择你自定义的符号来代替美元符号,选择一个不会在你的建里面出现的符号例如”:”,在php.ini中加上这么一句话复制代码代码如下:mongo.cmd=“:”那么上面的代码就可以替换成复制代码代码如下:array(“:gt”=>20,“:lte”=>30));?>当然你也可以使用ini_set(“mongo.cmd”,“:”)的方法来改变创建一个索引MongoDB支持索引,并且可以很容易的加到一个集合中,你只要指定某个字段为索引就行了,并且还可以指定正序索引(1)与倒序索引(-1)下面的代码为I创建了索引复制代码代码如下:ensureIndex(array(“i”=>1));//在”i”上创建了一个索引$coll->ensureIndex(array(“i”=>-1,“j”=>1));//在”i”上创建了倒序索引在”j”上创建了正序索引?>一个完整的简单例子这个例子展示了如何链接mongodb数据库,如何选择数据库,如何插入数据,如何查询数据,以及关闭数据库链接复制代码代码如下:comedy;$collection=$db->cartoons;//添加一个元素$obj=array("title"=>"CalvinandHobbes","author"=>"BillWatterson");$collection->insert($obj);//修改$newdata=array('$set'=>array("title"=>"CalvinandHobbes"));$collection->update(array("author"=>"caleng"),$newdata);//删除$collection->remove(array('author'=>'caleng'),array("justOne"=>true));//添加另一个元素,使用不同的格式$obj=array("title"=>"XKCD","online"=>true);$collection->insert($obj);//查询所有的集合$cursor=$collection->find();//重复显示结果foreach($cursoras$obj){echo$obj["title"]."\n";}//关闭链接$m->close();?>输出结果为复制代码代码如下:CalvinandHobbesXKCD

❻ 怎么连接mongo数据库

执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。 你可以使用 MongoDB shell 来连接 MongoDB 服务器。你也可以使用 PHP 来连接 MongoDB。本教程我们会使用 MongoDB shell 来连接 Mongodb 服务,之后的章节我们将会介绍如何通过php 来连接MongoDB服务。 标准 URI 连接语法: mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] mongodb:// 这是固定的格式,必须要指定。 username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库 host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。 portX 可选的指定端口,如果不填,默认为27017 /database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。 ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

❼ 怎么连接mongodb的数据库

想在shell中连接数据库,首先要在连接数据的机器上安装mongodb的客户端才可以。客户端的安装在这里不再重复,自己网络或者google一下吧。连接mongodb的命令如下:/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888
这个是我的数据库配置,没有设置用户名密码。所以直接通过该命令就可以连接。
连结后会有一个默认连接的数据库。
mongodb常用命令:

查看数据库命令:
show dbs;
查看集合命令:
show collections;
切换数据库:
use databaseName;
查询数据:
db.集合名.find()
插入数据:
db.集合名.insert({name:'test',age:1});
删除:
db.test.remove();
sql="db.test.insert({name:'test',age:1});"//定义执行的sqlecho "$sql"|/home/test/mongodb/mongodb-2.2.3/bin/mongo 127.0.0.1:8888/test --shell
注意,echo命令中的格式必须这样写,管线命令后面的是是数据库安装地址 然后是ip:端口号,斜线后是数据库名称,--shell表示通过shell交互!