网站建设资讯

NEWS

网站建设资讯

php更新数据数据库代码 php数据库增删改查代码

mongo php 操作 怎样更新一条数据

PHP操作MongoDB数据库的简单示例。

创新互联从2013年开始,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元六合做网站,已为上家服务,为六合各地企业和个人服务,联系电话:13518219792

Mongodb的常用操作

参看手册,php官方的

也可以参看mongodb官方的教程。

一, Mognodb数据库连接

1)、默认格式

复制代码 代码示例:

$m = new Mongo();

//这里采用默认连接本机的27017端口,当然也可以连接远程主机如  192.168.0.4:27017,如果端口是27017,端口可以省略。

2)、标准连接

$m = new Mongo(“mongodb://${username}:${password}@localhost”);

实例:

复制代码 代码示例:

$m = new Mongo(“mongodb://127.0.0.1:27017/admin:admin”);

数据库的用户名和密码都是admin

数据库操作:

1)、插入数据:

复制代码 代码示例:

?php

//这里采用默认连接本机的27017端口,当然你也可以连接远程主机如192.168.0.4:27017

//如果端口是27017,端口可以省略

$m = new Mongo("mongodb://127.0.0.1:27017/admin:admin");

//选择comedy数据库,如果以前没该数据库会自动创建,也可以用$m-selectDB("comedy");

$db = $m-comedy;

//选择comedy里面的collection集合,相当于RDBMS里面的表,也可以使用

$collection = $db-collection;

$db-selectCollection("collection");

/*********添加一个元素**************/

$obj = array("title" = "php1", "author" = "Bill Watterson");

//将$obj 添加到$collection 集合中

$collection-insert($obj);

/*********添加另一个元素**************/

$obj = array("title" = "huaibei", "online" = true);

$collection-insert($obj);

//$query = array("title" = "huaibei");

$query = array( "_id" = $obj['_id'] );

$cursor = $collection-find($query);

//遍历所有集合中的文档

foreach ($cursor as $obj) {

echo $obj["title"] . "\n";

echo $obj["_id"] . "\n";

}

//断开MongoDB连接

$m-close();

2)、带条件的查询

查询 title为huaibei的字段

1 $query = array( ”title” = ”huaibei” );

2 $cursor = $collection-find( $query );      // 在$collectio集合中查找满足$query的文档

常用的SQL转化为mongodb的条件

复制代码 代码示例:

mysql: id = 123

mongo: array(‘id’=123)

mysql: name link ’%bar%’

mongo: array(‘name’ = new MongoRegex(‘/.*bar.*/i’))

mysql: where id  10

mongo: array(‘id’ = array(‘$gt’ = 10))

mysql: where id = 10

mongo: array(‘id’ = array(‘$gte’ = 10))

mysql: where id  10

mongo: array(‘id’ = array(‘$lt’ = 10))

mysql: where id = 10

mongo: array(‘id’ = array(‘$lte’ = 10))

mysql: where id  1 and id  10

mongo: array(‘id’ = array(‘$gt’ = 1,’$lt’ = 10))

mysql: where id  10

mongo: array(‘id’ = array(‘$ne’ = 10))

mysql: where id in(123)

mongo: array(‘id’ = array(‘$in’ = array(1,2,3)))

mysql: where id not in(123)

mongo: array(‘id’ = array(‘$nin’ = array(1,2,3)))

mysql: where id = 2 or id = 9

mongo: array(‘id’ = array(‘$or’ = array(array(‘id’=2),array(‘id’=9))))

mysql: order by name asc

mongo: array(‘sort’=array(‘name’=1))

mysql: order by name desc

mongo: array(‘sort’=array(‘name’=-1))

mysql: limit 0,2

mongo: array(‘limit’=array(‘offset’=0,’rows’=2))

mysql: select name,email

mongo: array(‘name’,'email’)

mysql: select count(name)

mongo: array(‘COUNT’) //注意:COUNT为大写

更详细的转换参考

注意事项:

查询时,每个Object插入时都会自动生成一个独特的_id,它相当于RDBMS中的主键,用于查询时非常方便 (_id每一都不同,很像自动增加的id)

例如:

复制代码 代码示例:

?php

$param = array("name" = "joe");

$collection-insert($param);

$joe = $collection-findOne(array("_id" = $param['_id']));

print_R($joe);

$m-close();

返回结果:Array ( [_id] = MongoId Object ( [$id] = 4fd30e21870da83416000002 ) [name] = joe )

更改字段值:

复制代码 代码示例:

?php

$sign = array("title" = 'php1');

$param = array("title" = 'php1','author'='test');

$joe = $collection-update($sign, $param);

删除一个数据库:

复制代码 代码示例:

$m - dropDB(“comedy”);

列出所有可用数据库:

复制代码 代码示例:

$m-listDBs();   //无返回值

附,mongodb常用的数据库方法

MongoDB中有用的函数:

创建一个MongoDB对象

复制代码 代码示例:

?php

$mo = new Mongo();

$db = new MongoDB($mo,’dbname’);//通过创建方式获得一个MongoDB对象

删除当前DB

复制代码 代码示例:

?php

$db = $mo-dbname;

$db-drop();

获得当前数据库名

复制代码 代码示例:

?php

$db = $mo-dbname;

$db-_tostring();

选择想要的collection:

复制代码 代码示例:

A:

$mo = new Mongo();

$coll = $mo-dbname-collname;//获得一个collection对象

B:

$db = $mo-selectDB(’dbname’);

$coll = $db-collname;

C:

$db = $mo-dbname;

$coll = $db-collname;

D:

$db = $mo-dbname;

$coll = $db-selectCollectoin(’collname’);//获得一个collection对象

插入数据(MongoCollection对象):

MongoCollection::insert(array $a,array $options)

array $a 要插入的数组

array $options 选项

safe 是否返回操作结果信息

fsync 是否直接插入到物理硬盘

例子:

复制代码 代码示例:

$coll = $mo-db-foo;

$a = array(’a’=’b’);

$options = array(’safe’=true);

$rs  =$coll-insert($a,$options);

$rs为一个array型的数组,包含操作信息

删除数据库中的记录(MongoCollection对象):

MongoCollection::remove(array $criteria,array $options)

array $criteria  条件

array $options 选项

safe 是否返回操作结果

fsync 是否是直接影响到物理硬盘

justOne 是否只影响一条记录

例子:

复制代码 代码示例:

$coll = $mo-db-coll;

$c = array(’a’=1,’s’=array(’$lt’=100));

$options = array(’safe’=true);

$rs = $coll-remove($c,$options);

$rs为一个array型的数组,包含操作信息

更新数据库中的记录(MongoCollection对象):

MongoCollection::update(array $criceria,array $newobj,array $options)

array $criteria  条件

array $newobj 要更新的内容

array $options 选项

safe 是否返回操作结果

fsync 是否是直接影响到物理硬盘

upsert 是否没有匹配数据就添加一条新的

multiple 是否影响所有符合条件的记录,默认只影响一条

例子:

复制代码 代码示例:

$coll = $mo-db-coll;

$c = array(’a’=1,’s’=array(’$lt’=100));

$newobj = array(’e’=’f’,’x’=’y’);

$options = array(’safe’=true,’multiple’=true);

$rs = $coll-remove($c,$newobj,$options);

$rs为一个array型的数组,包含操作信息

查询collection获得单条记录(MongoCollection类):

array MongoCollection::findOne(array $query,array $fields)

array $query 条件

array $fields 要获得的字段

例子:

复制代码 代码示例:

$coll = $mo-db-coll;

$query = array(’s’=array(’$lt’=100));

$fields = array(’a’=true,’b’=true);

$rs = $coll-findOne($query,$fields);

如果有结果就返回一个array,如果没有结果就返回NULL

查询collection获得多条记录(MongoCollection类):

MongoCursor MongoCollection::find(array $query,array $fields)

array $query 条件

array $fields 要获得的字段

例子:

复制代码 代码示例:

$coll = $mo-db-coll;

$query = array(’s’=array(’$lt’=100));

$fields = array(’a’=true,’b’=true);

$cursor = $coll-find($query,$fields);

//排序

$cursor-sort(array(‘字段’=-1));(-1倒序,1正序)

//跳过部分记录

$cursor-skip(100);跳过100行

//只显示部分记录

$cursor-limit(100);只显示100行

返回一个游标记录对象MongoCursor。

针对游标对象MongoCursor的操作(MongoCursor类):

循环或结果记录:

复制代码 代码示例:

$cursor = $coll-find($query,$fields);

while($cursor-hasNext()){

$r = $cursor-getNext();

var_dump($r);

}

或者

$cursor = $coll-find($query,$fields);

foreache($cursor as $k=$v){

var_dump($v);

}

或者

$cursor = $coll-find($query,$fields);

$array= iterator_to_array($cursor);

php 更新数据库某一字段

//经过测试,一个很小的问题,只是你的sql语句写错了。

include_once 'cnn.php';

mysql_query("SET NAMES 'gbk'");//解决汉字 

$result = mysql_query ( "select * from univ_basic_info" );

while ( $row = mysql_fetch_array ( $result ) ) {

$str1 = strip_tags ($row['univ_kind']);

var_dump($str1);

$i= $row['univ_id'];

mysql_query("UPDATE univ_basic_info SET univ_kind='$str1' WHERE 'univ_id'=$i"); 

//注意此sql语句,univ_kind  不应该有引号,而变量$str1则应该带引号

//你的错误就在于此

}

请问: 用php更新数据库内容

是否有报错?

?

echo $b_order."br";

echo $id."br";

$query="update book set b_order='$b_order',publisher='$publisher' where book_id=$id";

echo $query."br";

?

调试输出看一下值

PHP怎么更新mysql数据库

MySQL Update Set 更新数据

UPDATE 更新

UPDATE SET 语法用于修改更新数据表中的数据。

语法:

UPDATE tb_name SET column1 = new_value1,column2 = new_value2,… WHERE definition

该语法将数据表中符合 WHERE 条件的记录中的 column1 的值更新为 new_value1,column2 的值更新为 new_value2 ,以此类推。如果省略 WHERE 条件,则会将表中所有记录的 column 值进行更新。

例子:

?php

$conn = @mysql_connect("localhost","root","root123");

if (!$conn){

die("连接数据库失败:" . mysql_error());

}

mysql_select_db("test", $conn);

mysql_query("set names 'gbk'");

$sql = "UPDATE user SET email = 'xiaoming@163.com' WHERE username = '小明'";

if(mysql_query($sql,$conn)){

echo "更新数据成功!";

} else {

echo "更新数据失败:".mysql_error();

}

?

更新前数据:

uid username password email regdate

1 admin b7e591c246d010bb2ccd77d52490c85e admin@5idev.com 1277992339

2 小明 a193686a53e4de85ee3f2ff0576adf01 xiao@163.com 1278063917

3 Jack 0193686a35e4de85ee3f2ff0567adf49 jack@gmail.com 1278061380

4 小王 e10adc3949ba59abbe56e057f20f883e 12345@163.com 1289632955

例子将 user 表中 username 为 小明 的 email 修改为 xiaoming@163.com 。

更新后数据:

uid username password email regdate

1 admin b7e591c246d010bb2ccd77d52490c85e admin@5idev.com 1277992339

2 小明 a193686a53e4de85ee3f2ff0576adf01 xiaoming@163.com 1278063917

3 Jack 0193686a35e4de85ee3f2ff0567adf49 jack@gmail.com 1278061380

4 小王 e10adc3949ba59abbe56e057f20f883e 12345@163.com 1289632955

UPDATE 表达式

UPDATE 语法允许 SET 后面跟表达式。

例子 1 :

UPDATE article SET pv = pv+1 WHERE id = 123

该例子让 id 为 123 的文章在被点击阅读的时候点击量加 1 。

例子 2 :

UPDATE persondata SET age = age*2, age = age+1

该例子 SET 后面跟了两个表达式:age = age*2(年龄加倍),age = age+1(再加 1 )。这种多个表达式的情况,是按照从左往右顺序执行的。

php字段代码能否实现自动更新数据库数据

可以肯定可以, 不过不建议这样做,这样会加重服务器负荷,还是建议通过后台等专用程序来更新较好

PHP中如何更新大量的mysql数据

sql= "UPDATE mydata SET p1='".$pointarr[i][1]."' where ps like '%".$pointarr[i][

每次都去做一次like的全表扫描当然慢了。

建议使用批量更新,减少查询次数。

比如先查询出结果集,然后在内存里去操作字段更新

最后采用 update ...... where id = xxx 这样的更新方法。避免多次全表扫描。

不是最了解你的需求,仅供参考。


标题名称:php更新数据数据库代码 php数据库增删改查代码
URL链接:http://cdweb.net/article/hggcci.html