重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
?php
网站建设哪家好,找成都创新互联公司!专注于网页设计、网站建设、微信开发、成都小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了洛隆免费建站欢迎大家使用!
mysql_connect("localhost", "root", "123456") or die("Could not connect: " . mysql_error());
mysql_select_db('qqlist') or die('选择数据库失败');
$sql=mysql_query("select id,标记,内容 from 表1 where 标记=0 order by id asc limit 0,1");
$rs=mysql_fetch_array($sql);
$sql=mysql_query("update list set yifa=1 where id=$rs[id]");
echo $id.$标记.$内容;
?
你光写变量,但不给数据库操作!
想起一个网友的名言:
做好了香喷喷的饭,但不给mysql吃,还要问mysql好吃不好吃
PHP操作MongoDB数据库的简单示例。
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);
//完成你的问题需要先假设几个变量//传值的id$aId = $_GET['id'] //要修改的新check内容$newCheck = "aaa";//要在表B中加的数值$addContent = "20";//第一个SQL更新表A中的check内容$sql1 = "UPDATE `A` SET `check`='".$check."' WHERE `aid`=".$_GET['id'];//第二个SQL获取表B中的相关信息$sql2 = "SELECT `B`.`bid`,`b`.`score` FROM `A`,`B` WHERE `A`.`name`=`B`.`name` AND `A`.`aid`=".$_GET['id'];//通过sql2可以得到所要修改的B表中的bid=$bid 和B表中该条记录的score内容=$score。$newScore = $score.$addContent;//更新表B中数据$sql3 = "UPDATE `B` SET `score`='".$newScore."' WHERE `bid`=".$bid;