网站建设资讯

NEWS

网站建设资讯

php操作mdb数据库 php操作数据库代码

如何用php连接mdb数据库?

以下为几个php连接access数据库和操作acess数据的方法,全部做成了类,应用起来也更方便,也可摘用其中的部分代码应用。

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了大渡口免费建站欢迎大家使用!

?php

--------------------------------------------------------------------

//FileName:class.php

//Summary: Access数据库操作类

// 使用范例:

//$databasepath="database.mdb";

//$dbusername="";

//$dbpassword="";

//include_once("class.php");

//$access=new Access($databasepath,$dbusername,$dbpassword);

--------------------------------------------------------------------

class Access

{

var $databasepath,$constr,$dbusername,$dbpassword,$link;

function Access($databasepath,$dbusername,$dbpassword)

{

$this-databasepath=$databasepath;

$this-username=$dbusername;

$this-password=$dbpassword;

$this-connect();

}

function connect()

{

$this-constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this-databasepath);

$this-link=odbc_connect($this-constr,$this-username,$this-password,SQL_CUR_USE_ODBC);

return $this-link;

//if($this-link) echo "恭喜你,数据库连接成功!";

//else echo "数据库连接失败!";

}

function query($sql)

{

return @odbc_exec($this-link,$sql);

}

function first_array($sql)

{

return odbc_fetch_array($this-query($sql));

}

function fetch_row($query)

{

return odbc_fetch_row($query);

}

function total_num($sql)//取得记录总数

{

return odbc_num_rows($this-query($sql));

}

function close()//关闭数据库连接函数

{

odbc_close($this-link);

}

function insert($table,$field)//插入记录函数

{

$temp=explode(',',$field);

$ins='';

for ($i=0;$icount($temp);$i++)

{

$ins.="'".$_POST[$temp[$i]]."',";

}

$ins=substr($ins,0,-1);

$sql="INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";

$this-query($sql);

}

function getinfo($table,$field,$id,$colnum)//取得当条记录详细信息

{

$sql="SELECT * FROM ".$table." WHERE ".$field."=".$id."";

$query=$this-query($sql);

if($this-fetch_row($query))

{

for ($i=1;$i$colnum;$i++)

{

$info[$i]=odbc_result($query,$i);

}

}

return $info;

}

function getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得记录列表

{

$sql="SELECT * FROM ".$table." ".$condition." ".$sort;

$query=$this-query($sql);

$i=0;

while ($this-fetch_row($query))

{

$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);

$i++;

}

return $recordlist;

}

function getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得记录列表

{

$sql="SELECT ".$field." FROM ".$table." ".$condition." ".$sort;

$query=$this-query($sql);

$i=0;

while ($this-fetch_row($query))

{

for ($j=0;$j$fieldnum;$j++)

{

$info[$j]=odbc_result($query,$j+1);

}

$rdlist[$i]=$info;

$i++;

}

return $rdlist;

}

function updateinfo($table,$field,$id,$set)//更新记录

{

$sql="UPDATE ".$table." SET ".$set." WHERE ".$field."=".$id;

$this-query($sql);

}

function deleteinfo($table,$field,$id)//删除记录

{

$sql="DELETE FROM ".$table." WHERE ".$field."=".$id;

$this-query($sql);

}

function deleterecord($table,$condition)//删除指定条件的记录

{

$sql="DELETE FROM ".$table." WHERE ".$condition;

$this-query($sql);

}

function getcondrecord($table,$condition="")// 取得指定条件的记录数

{

$sql="SELECT COUNT(*) AS num FROM ".$table." ".$condition;

$query=$this-query($sql);

$this-fetch_row($query);

$num=odbc_result($query,1);

return $num;

}

}

?

22222222

class.php文件:

[php]

?php

class Access//Access数据库操作类

{

var $databasepath,$constr,$dbusername,$dbpassword,$link;//类的属性

function Access($databasepath,$dbusername,$dbpassword)//构造函数

{

$this-databasepath=$databasepath;

$this-username=$dbusername;

$this-password=$dbpassword;

$this-connect();

}

function connect()//数据库连接函数

{

$this-constr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath($this-databasepath);

$this-link=odbc_connect($this-constr,$this-username,$this-password,SQL_CUR_USE_ODBC);

return $this-link;

//if($this-link) echo "恭喜你,数据库连接成功!";

//else echo "数据库连接失败!";

}

function query($sql)//送一个查询字符串到数据库中

{

return @odbc_exec($this-link,$sql);

}

function first_array($sql)//从access数据库中返回一个数组

{

return @odbc_fetch_array($this-query($sql));

}

function fetch_row($query)//返回记录中的一行

{

return odbc_fetch_row($query);

}

function total_num($sql)//取得记录总数

{

return odbc_num_rows($this-query($sql));

}

function close()//关闭数据库连接函数

{

odbc_close($this-link);

}

function insert($table,$field)//插入记录函数

{

$temp=explode(',',$field);

$ins='';

for ($i=0;$i {

$ins.="'".$_POST[$temp[$i]]."',";

}

$ins=substr($ins,0,-1);

$sql="INSERT INTO ".$table." (".$field.") VALUES (".$ins.")";

$this-query($sql);

}

function getinfo($table,$field,$id,$colnum)//取得当条记录详细信息

{

$sql="SELECT * FROM ".$table." WHERE ".$field."=".$id."";

$query=$this-query($sql);

if($this-fetch_row($query))

{

for ($i=1;$i$colnum;$i++)

{

$info[$i]=odbc_result($query,$i);

}

}

return $info;

}

function getlist($table,$field,$colnum,$condition,$sort="ORDER BY id DESC")//取得记录列表

{

$sql="SELECT * FROM ".$table." ".$condition." ".$sort;

$query=$this-query($sql);

$i=0;

while ($this-fetch_row($query))

{

$recordlist[$i]=getinfo($table,$field,odbc_result($query,1),$colnum);

$i++;

}

return $recordlist;

}

function getfieldlist($table,$field,$fieldnum,$condition="",$sort="")//取得记录列表

{

$sql="SELECT ".$field." FROM ".$table." ".$condition." ".$sort;

$query=$this-query($sql);

$i=0;

while ($this-fetch_row($query))

{

for ($j=0;$j$fieldnum;$j++)

{

$info[$j]=odbc_result($query,$j+1);

}

$rdlist[$i]=$info;

$i++;

}

return $rdlist;

}

function updateinfo($table,$field,$id,$set)//更新记录函数

{

$sql="UPDATE ".$table." SET ".$set." WHERE ".$field."=".$id;

$this-query($sql);

}

function deleteinfo($table,$field,$id)//删除记录函数

{

$sql="DELETE FROM ".$table." WHERE ".$field."=".$id;

$this-query($sql);

}

function deleterecord($table,$condition)//删除指定条件的记录函数

{

$sql="DELETE FROM ".$table." WHERE ".$condition;

$this-query($sql);

}

function getcondrecord($table,$condition="")//取得指定条件的记录数函数

{

$sql="SELECT COUNT(*) AS num FROM ".$table." ".$condition;

$query=$this-query($sql);

$this-fetch_row($query);

$num=odbc_result($query,1);

return $num;

}

}

?

[/php]

数据库连接文件:

[php]

?php

$databasepath="data/database.mdb";//数据库路径

$dbusername="";//数据库用户名

$dbpassword="";//数据库密码

include_once("class.php");//调用数据库操作类

$access=new Access($databasepath,$dbusername,$dbpassword);//新建一个数据库操作类的对象

?

[/php]

[php]

?php

$sql="select * from $info where id=$id";

$result=$access-query($sql)or die("error2");

$array=odbc_fetch_array($result);

?

[/php]

333333333333

这个是为了 同时可以使用access和mysql而做的 先弄一个mysql的 然后又写一个access的 所有的函数一一对应 你可以看下 绝对原创喔~~

配置文件如下

$config['db']['type'] = "Mysql"; //数据库类型“Mysql”,“Access”

$config['db']['database']= "ourcms"; //数据库(文件)名

$config['db']['host'] = ""; //数据库主机

$config['db']['username']= "7king"; //数据库连接用户名

$config['db']['password']= "tingting"; //数据库连接密码

/*

$config['db']['type'] = "Access"; //数据库类型“Mysql”,“Access”

$config['db']['database']= "ourcms.mdb";//数据库(文件)名

$config['db']['host'] = "";

$config['db']['username']= "";

$config['db']['password']= "";

?php

/**

* 2007.04 by zhaohe

*

* php连接access通用类

*

* 用法:

* 建立new Access类 = set_db设置数据路径 = set_login 设置连接数据库的用户名和密码

* = 通过set_conn 设置连接 =

* {

get_result 获取查询执行结果; get_result_rows 获取查询执行列表,一般是select

insert_info 插入新的记录 update_info更新记录

}

*

*

*/

class Access {

/**

* 类变量定义

* @param $conn mysql连接号

* @param $error 错误代号

* @param $username/$password 数据库连接用户名和密码

* @param array $err_info 错误信息

*

* @param $debuginfo 调试信息

* @param $table 当前操作数据表

*/

var $conn;

var $error;

var $database;

var $username = "";

var $password = "";

var $err_info = array(

0 = "没有错误!",

1 = "数据库连接失败!",

2 = "sql执行出错!"

);

var $debuginfo="";

var $table;

/**

* 默认构造方法

**/

function Access( $arr=null ){

if( is_array($arr) ) {

$this-set_login( $arr['host'] , $arr['username'] , $arr['password'] );

$this-set_db( $arr['database'] );

$this-set_conn();

}

}

/**

* 设置数据库文件名

* @param string $dbfile

*

* return void

*/

function set_db ( $dbfile ){

$this-database = $dbfile;

}

/**

* 设置连接数据库的用户名和密码

* @param string $user 用户名

* @param string $pwd 密码

*

* @return void

*/

function set_login ( $user , $pwd ){

$this-username=$user;

$this-password=$pwd;

}

/**

* 创建数据库连接

* @param

* return void

*/

function set_conn ( ){

if($this-conn=odbc_connect("DRIVER=Microsoft Access Driver (*.mdb);DBQ=".realpath($this-database),$this-username,$this-password,SQL_CUR_USE_ODBC )) $this-error=0;

else $this-error=1;

}

/**

* 设置当前操作的数据表

* @param string $tb

*

* @return void

*/

function set_table( $tb ) {

$this-table = $tb;

}

/**

* 返回sql查询结果

* @param string $sql sql语句

*

* @return #id

*/

function get_result( $sql ){

return odbc_do( $this-conn , $sql );

}

/**

* 获取查询的结果

* @param string $sql

*

* @return array 结果的二维数组

*/

function get_result_rows( $sql ){

$array = array() ;

$result = $this-get_result( $sql );

while( $row = odbc_fetch_array( $result ) )

$array[] = $row ;

return $array;

}

/**

* 获取部分查询结果

*

* @param Array 数组

* @return Array

*/

function get_query_result( $cols , $tb=null , $order=null , $limit=null , $start=0 ) {

if( empty($tb) ) $tb=$this-table;

else $this-table=$tb;

if( is_array($cols) ) $col="[".implode('],[',$cols)."]";

else $col = $cols;

if( empty($limit) )

$sql = "select $col from $tb";

else

$sql ="select top $limit $col from $tb";;

if( isset($order) ) $sql.=" order by $order";

return $this-get_result_rows($sql);

}

/**

* 执行数据库插入操作

*

* @param $arr values列表,数组索引为数据表字段

* @param $tb 操作数据表 如果为空则为设置的当前类的操作表

*/

function insert_info( $arr , $tb = "" ) {

$cols = array_keys( $arr );

$values = array_values( $arr );

if (empty($tb)) $tb = $this-tb;

/*

foreach( $arr as $key = $value ){

$cols[] = $key;

$values[] = $value;

}

*/

$sql = "insert into [$tb]([".implode("],[",$cols)."]) values('".implode("','",$values)."')";

//return $sql;

return $this-get_result( $sql );

}

/**

* 执行数据库更新操作

*

* @param array $arr 要更新的字段值 数组索引为表字段名

* @param array $con 条件数组

* @param string $tb 要操作的数据表

*

*/

function update_info( $arr , $con , $tb = "" ) {

$cols = array();

$conditions = array();

if (empty( $tb )) $tb = $this-tb;

foreach( $arr as $key = $value ){

$cols[] = "[$key]='$value'";

}

foreach( $con as $key = $value ) {

//检查数据类型

if( is_int($value) || is_float($value) )

$conditions[] = "[$key]=$value";

else

$conditions[] = "[$key]='$value'";

}

$sql = "update [$tb] set ".implode(",",$cols)." where ".implode(" and ",$conditions);

//return $sql;

return $this-get_result( $sql );

}

}

?

mysql的类如下

class Mysql {

/**

* mysql连接执行类,将sql的执行实现数据库无关性

*

*

*

*/

/**

* 类变量定义

* @param $conn mysql连接号

* @param $error 错误代号

* @param $username/$password 数据库连接用户名和密码

* @param array $err_info 错误信息

*

* @param $debuginfo 调试信息

* @param $table 当前操作数据表

*/

var $conn;

var $error;

var $username = "";

var $password = "";

var $host;

var $database;

var $err_info = array(

0 = "没有错误!",

1 = "数据库连接失败!",

2 = "sql执行出错!"

);

var $debuginfo="";

var $table;

function Mysql( $arr=null ) {

if( is_array($arr) ) {//var_dump($arr);

$this-set_login( $arr['host'] , $arr['username'] , $arr['password'] );

$this-set_db( $arr['database'] );

$this-set_conn();

if( isset($this-error) $this-error!=0 ) die($this-err_info[$this-error]);

}

}

/**

* 设置数据库名

* @param string $database

*

* return void

*/

function set_db ( $dbfile ){

$this-database = $dbfile;

}

/**

* 设置连接数据库的用户名和密码

* @param string $user 用户名

* @param string $pwd 密码

*

* @return void

*/

function set_login ( $host , $user , $pwd ){

$this-host=$host;

$this-username=$user;

$this-password=$pwd;

}

/**

* 创建数据库连接

* @param

* return void

*/

function set_conn (){

$this-conn=mysql_connect($this-host,$this-username,$this-password );

if ( isset($this-conn) mysql_select_db($this-database) )

$this-error=0;

else

$this-error=1;

}

/**

* 设置当前操作的数据表

* @param string $tb

*

* @return void

*/

function set_table( $tb ) {

$this-table = $tb;

}

/**

* 返回sql查询结果

* @param string $sql sql语句

*

* @return #id

*/

function get_result( $sql ){

return mysql_query( $sql , $this-conn );

}

/**

* 获取查询的结果

* @param string $sql

*

* @return array 结果的二维数组

*/

function get_result_rows( $sql ){

$array = array() ;

$result = $this-get_result( $sql );

while( $row = mysql_fetch_assoc( $result ) )

$array[] = $row ;

return $array;

}

/**

* 获取部分查询结果

*

* @param Array 数组

* @return Array

*/

function get_query_result( $cols , $tb=null , $condition , $order=null , $limit=null , $start=0 ) {

if( empty($tb) ) $tb=$this-table;

else $this-table=$tb;

if( is_array($cols) ) $col="`".implode('`,`',$cols)."`";

else $col = $cols;

if( isset($limit) )

$sql.="select top $limit $col from $tb";

else

$sql = "select $col from $tb";

if( isset($condition) ) $sql.=" where $condition";

if( isset($order) ) $sql.=" order by $order";

if( isset($limit) ) $sql.=" limit $start,$limit";

return $this-get_result_rows($sql);

}

/**

* 执行数据库插入操作

*

* @param $arr values列表,数组索引为数据表字段

* @param $tb 操作数据表 如果为空则为设置的当前类的操作表

*/

function insert_info( $arr , $tb = "" ) {

$cols = array_keys( $arr );

$values = array_values( $arr );

if (empty($tb)) $tb = $this-table;

/*

foreach( $arr as $key = $value ){

$cols[] = $key;

$values[] = $value;

}

*/

$sql = "insert into [$tb](`".implode("`,`",$cols)."`) values('".implode("','",$values)."')";

//return $sql;

return $this-get_result( $sql );

}

/**

* 执行数据库更新操作

*

* @param array $arr 要更新的字段值 数组索引为表字段名

* @param array $con 条件数组

* @param string $tb 要操作的数据表

*

*/

function update_info( $arr , $con , $tb = "" ) {

$cols = array();

$conditions = array();

if (empty( $tb )) $tb = $this-table;

if( is_array($arr) ) {

foreach( $arr as $key = $value ){

$cols[] = "`$key`='$value'";

}

foreach( $con as $key = $value ) {

//检查数据类型

if( is_int($value) || is_float($value) )

$conditions[] = "`$key`=$value";

else

$conditions[] = "`$key`='$value'";

}

$sql = "update `$tb` set ".implode(",",$cols)." where ".implode(" and ",$conditions);

}

else

$sql = "update `$tb` set $arr where $con";

//return $sql;

return $this-get_result( $sql );

}

}

几种常用PHP连接数据库的代码示例

PHP连接数据库之PHP连接MYSQL数据库代码

?php    $mysql_server_name= localhost ;  //改成自己的mysql数据库服务器   $mysql_username= root ;  //改成自己的mysql数据库用户名   $mysql_password= ;  //改成自己的mysql数据库密码   $mysql_database= mycounter ;  //改成自己的mysql数据库名   $conn=mysql_connect($mysql_server_name $mysql_username $mysql_password $mysql_database);    $sql= CREATE DATABASE mycounter  DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;    ;    mysql_query($sql);    $sql= CREATE TABLE `counter`  (`id` INT( ) UNSIGNED NOT NULL  AUTO_INCREMENT  `count` INT( )  UNSIGNED NOT NULL DEFAULT  PRIMARY KEY  ( `id` ) ) TYPE = innodb; ;    mysql_select_db($mysql_database $conn);    $result=mysql_query($sql);    //echo $sql;    mysql_close($conn);    echo "Hello!数据库mycounter已经成功建立!";    ?

PHP连接数据库之PHP连接ACCESS数据库代码方法

?   $conn = new ("ADODB Connection");    $connstr = "DRIVER={Microsoft Access Driver (* mdb)}; DBQ="  realpath("data/db mdb");    $conn Open($connstr);    $rs = new ("ADODB RecordSet");    $rs Open("select * from szd_t" $conn );    while(! $rs eof) {    $f = $rs Fields( );    echo $f value;    $rs MoveNext();    }    ?

PHP连接数据库之PHP连接MS SQL数据库代码方法

安装SQL服务器并添加PHP的MSSQL扩展

使用以下代码连接并测试

?php    $myServer = localhost; //主机   $myUser = sa; //用户名   $myPass = password; //密码   $myDB = Northwind; //MSSQL库名   $s = @mssql_connect($myServer  $myUser  $myPass)    or die(Couldnt connect to SQL Server on $myServer);    $d = @mssql_select_db($myDB  $s)    or die(Couldnt open database $myDB);    $query = SELECT TitleOfCourtesy+ +FirstName+ +LastName AS Employee ;    $query  = FROM Employees ;    $query  = WHERECountry=USA AND Left(HomePhone   ) = ( );    $result = mssql_query($query);    $numRows = mssql_num_rows($result);    echo  h    $numRows   Row   ($numRows ==   ? : s)   Returned / h ;    while($row = mssql_fetch_array($result))    {    echo  li   $row[Employee]    /li;    }    ?

PHP连接数据库之PHP连接Oracle数据库

PHP提供了两套函数与Oracle连接 分别是ORA_和OCI函数 其中ORA_函数略显陈旧 OCI函数更新据说更好一些 两者的使用语法几乎相差无几 你的PHP安装选项应该可以支持两者的使用

 ?  if ($conn=Ora_Logon("user@TNSNAME" "password"))    { echo "SUCCESS ! Connected to databasen";    }else    {echo "Failed : ( Could not connect to databasen";}    Ora_Logoff($conn);    phpinfo();    ?    lishixinzhi/Article/program/PHP/201405/30761

php查询mdb最新

一.安装部署mongo

1.创建文件夹 

/opt/mongodb/single 

/opt/mongodb/data/db

2.进入single目录下载安装包

//下载 tar.gz文件

wget

3.解压 并修改文件名 

mv mongodb-linux-x86_64-2.4.6 mongo

4.进入mongo目录

5.创建配置文件 

– mkdir conf 

– cd conf 

– vim conf.properties

#端口

port=27017

#db存放的目录

dbpath=/opt/mongotest/data/db

#后台启动需要配置日志输出

logpath=/opt/mongotest/single/mongo/log/mongo.log

#日志模式

logappend=true

#设置成后台启动

fork=true

6.启动mongo 

mongo目录执行

root@chwx2:/opt/mongotest/single/mongo# ./bin/mongod -f conf/conf.properties

about to fork child process, waiting until server is ready for connections.

forked process: 4988

all output going to: /opt/mongotest/single/mongo/log/mongo.log

child process started successfully, parent exiting

表示后台启动mongo成功

二.使用mongo进行日常操作

1.连接mongodb 

mongo/bin目录下执行 

./mongo

2.查看数据库 

show dbs

3.查看当前所在数据库 

db

4.创建数据库 

use openfire (临时创建 如果不做操作 则离开后被系统删除)

5.在当前数据库删除当前数据库 

db.dropDatabase()

6.查看当前库的所有用户 

show users

7.查看集合(或者叫表) 

show collections

8.创建集合 

db.createCollection(“mycollection”)

9.创建集合并制定集合的属性 

db.createCollection(“mycol”, { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )

字段

类型

描述

capped    Boolean    (可选)如果为true,则启用封顶集合。封顶集合是固定大小的集合,会自动覆盖最早的条目,当它达到其最大大小。如果指定true,则需要也指定尺寸参数。  

autoIndexID    Boolean    (可选)如果为true,自动创建索引_id字段的默认值是false。  

size    number    (可选)指定最大大小字节封顶集合。如果封顶如果是 true,那么你还需要指定这个字段。  

max    number    (可选)指定封顶集合允许在文件的最大数量。  

10.另一种创建集合 

(当插入一条数据时,不存在mongodb会帮我们创建,和创建数据库同理) 

db.MySecondCollection.insert({“name” : “ming”})

11.删除当前库的一个集合 

db.CollectionName.drop()

12.插入一条数据 

db.MyFirstCollection.insert({“_id”:”3”,”title”:”mongotest”,”description”:”this is test”}) 

注意:插入的都是JSON形式的,所以一定要用{},否则会报错: 

Sat Mar 19 14:22:39.160 SyntaxError: Unexpected token :

13.插入一条_id存在的数据 

db.MyFirstCollection.insert({“_id”:”3”,”title”:”mm”}) 

输出:E11000 duplicate key error index: openfire.MyFirstCollection.$_id_ dup key: { : “3” } 

解释:_id即是mongodb的默认主键,默认自动生成,我们可以直接设置以达到我们想要的目的

问:插入一条和原来集合完全不一样的数据可以吗?

答:可以,所以我们要在程序中规避,手动指定我们一个集合里面的字段,否则就无法实现查询及其他功能了

db.MyFirstCollection.insert({"newTitle":"null"})

db.MyFirstCollection.find();

{ "_id" : "3", "title" : "new title", "description" : "this is test" }

{ "_id" : ObjectId("56ecf4fe0dceecace97c4506"), "newTitle" : "null" }

14.查看集合第一条记录 

db.MySecondCollection.findOne(); 

输出:{ “_id” : ObjectId(“56ecde0662552d15c443dd4a”), “name” : “ming” }

15.查找一条/多条特定数据 

db.MySecondCollection.findOne({“name”:”ming”}) 

输出:{ “_id” : ObjectId(“56ecde0662552d15c443dd4a”), “name” : “ming” }

16.更新一条记录 

db.MyFirstCollection.update({“title”:”mongotest”},{$set:{“title”:”new title”}},true,false) 

结果: 

db.MyFirstCollection.findOne() 

{ “_id” : “3”, “title” : “new title”, “description” : “this is test” }

update详解

db.collection.update(criteria,objNew,upsert,multi)

criteria:查询条件

objNew:update对象和一些更新操作符

upsert:如果不存在update的记录,是否插入objNew这个新的文档,true为插入,默认为false,不插入。

multi:默认是false,只更新找到的第一条记录。如果为true,把按条件查询出来的记录全部更新。

更新操作符:

1.$inc

用法:{$inc:{field:value}}

作用:对一个数字字段的某个field增加value

示例:db.students.update({name:"student"},{$inc:{age:5}})  

2.$set

用法:{$set:{field:value}}

作用:把文档中某个字段field的值设为value

示例:db.students.update({name:"student"},{$set:{age:23}})

3.$unset

用法:{$unset:{field:1}}

作用:删除某个字段field

示例: db.students.update({name:"student"},{$unset:{age:1}})

4.$push

用法:{$push:{field:value}}

作用:把value追加到field里。注:field只能是数组类型,如果field不存在,会自动插入一个数组类型

示例:db.students.update({name:"student"},{$push:{"title":"major"}}

5.$rename

用法:{$rename:{old_field_name:new_field_name}}

作用:对字段进行重命名(不是值,是字段)

示例:db.students.update({name:"student"},{$rename:{"name":"newname"}})

设置用户权限及访问

1.给admin添加用户

切换到admin库:use admin 

添加admin用户:db.addUser(“root”,”admin”)

注意:必须先给admin库添加用户,否则就算给具体的库添加了用户,后续进入依然能操作具体库. 

因为默认admin库用户具有最高权限,相当于具体库需要认证时,进入的用户持有的是admin的权限,所以无需认证依然能进行操作.

2.给具体库添加用户

use openfire

db.addUser("openfire","password")

3.重启mongo并在启动时配置需要认证

方法一:退出重启并加上auth参数 

./bin/mongod -f conf/conf.properties –auth(注意是两个-)

方法二:修改配置文件,加上参数(推荐) 

auth=true

3.测试权限

use openfire

db.MySecondCollection.findOne();

Sat Mar 19 14:04:55.653 error: {

"$err" : "not authorized for query on openfire.MySecondCollection",

"code" : 16550

} at src/mongo/shell/query.js:128

4.认证并操作

//此处应该设置成更加恰当的用户名及密码

db.auth("openfire","password")

1

db.MySecondCollection.findOne()

{ "_id" : ObjectId("56ecde0662552d15c443dd4a"), "name" : "ming" }

5.另一种方法认证

在进入mongo时候加上数据库及用户名、密码 

./bin/mongo openfire -uopenfire -ppassword

root@test:/opt/mongotest/single/mongo# ./bin/mongo openfire -uopenfire -ppassword

MongoDB shell version: 2.4.6

connecting to: openfire

db

openfire

db.MySecondCollection.findOne()

{ "_id" : ObjectId("56ecde0662552d15c443dd4a"), "name" : "ming" }

mongdb进阶

1.find()指定返回字段 

作用:减少流量

如果key:value,返回的value是个非常大的JSON,而我们不需要这么多字段,也许我们只需要其中的一个.

那么使用projection来过滤: 

db.collection.find(query, projection) 此处projection就是返回值的过滤条件

参数

类型

描述

query    文档    可选. 使用查询操作符指定查询条件  

projection    文档    可选.使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略).  

返回值: 匹配查询条件的文档集合的游标. 如果指定投影参数,查询出的文档返回指定的键 ,”_id”键也可以从集合中移除掉。 

_id不指定的话,总是会返回. 

1或者true代表返回,0或者false代表不返回

示例: 

db.MyFirstCollection.findOne({“title”:”new title”},{“description”:1,”_id”:0}); 

{ “description” : “this is test” }

也可以使用表达式: 

db.MyFirstCollection.findOne({“title”:”new title”},{Items:{“$slice”:[3,1]}});

引用: 


名称栏目:php操作mdb数据库 php操作数据库代码
文章链接:http://njwzjz.com/article/dojised.html