?php
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、成都小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了洛隆免費(fèi)建站歡迎大家使用!
mysql_connect("localhost", "root", "123456") or die("Could not connect: " . mysql_error());
mysql_select_db('qqlist') or die('選擇數(shù)據(jù)庫失敗');
$sql=mysql_query("select id,標(biāo)記,內(nèi)容 from 表1 where 標(biāo)記=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.$標(biāo)記.$內(nèi)容;
?
你光寫變量,但不給數(shù)據(jù)庫操作!
想起一個(gè)網(wǎng)友的名言:
做好了香噴噴的飯,但不給mysql吃,還要問mysql好吃不好吃
PHP操作MongoDB數(shù)據(jù)庫的簡單示例。
Mongodb的常用操作
參看手冊,php官方的
也可以參看mongodb官方的教程。
一,?Mognodb數(shù)據(jù)庫連接
1)、默認(rèn)格式
復(fù)制代碼?代碼示例:
$m?=?new?Mongo();
//這里采用默認(rèn)連接本機(jī)的27017端口,當(dāng)然也可以連接遠(yuǎn)程主機(jī)如??192.168.0.4:27017,如果端口是27017,端口可以省略。
2)、標(biāo)準(zhǔn)連接
$m?=?new?Mongo(“mongodb://${username}:${password}@localhost”);
實(shí)例:
復(fù)制代碼?代碼示例:
$m?=?new?Mongo(“mongodb://127.0.0.1:27017/admin:admin”);
數(shù)據(jù)庫的用戶名和密碼都是admin
數(shù)據(jù)庫操作:
1)、插入數(shù)據(jù):
復(fù)制代碼?代碼示例:
?php
//這里采用默認(rèn)連接本機(jī)的27017端口,當(dāng)然你也可以連接遠(yuǎn)程主機(jī)如192.168.0.4:27017
//如果端口是27017,端口可以省略
$m?=?new?Mongo("mongodb://127.0.0.1:27017/admin:admin");
//選擇comedy數(shù)據(jù)庫,如果以前沒該數(shù)據(jù)庫會(huì)自動(dòng)創(chuàng)建,也可以用$m-selectDB("comedy");
$db?=?$m-comedy;
//選擇comedy里面的collection集合,相當(dāng)于RDBMS里面的表,也可以使用
$collection?=?$db-collection;
$db-selectCollection("collection");
/*********添加一個(gè)元素**************/
$obj?=?array("title"?=?"php1",?"author"?=?"Bill?Watterson");
//將$obj?添加到$collection?集合中
$collection-insert($obj);
/*********添加另一個(gè)元素**************/
$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轉(zhuǎn)化為mongodb的條件
復(fù)制代碼?代碼示例:
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為大寫
更詳細(xì)的轉(zhuǎn)換參考
注意事項(xiàng):
查詢時(shí),每個(gè)Object插入時(shí)都會(huì)自動(dòng)生成一個(gè)獨(dú)特的_id,它相當(dāng)于RDBMS中的主鍵,用于查詢時(shí)非常方便?(_id每一都不同,很像自動(dòng)增加的id)
例如:
復(fù)制代碼?代碼示例:
?php
$param?=?array("name"?=?"joe");
$collection-insert($param);
$joe?=?$collection-findOne(array("_id"?=?$param['_id']));
print_R($joe);
$m-close();
返回結(jié)果:Array?(?[_id]?=?MongoId?Object?(?[$id]?=?4fd30e21870da83416000002?)?[name]?=?joe?)
更改字段值:
復(fù)制代碼?代碼示例:
?php
$sign?=?array("title"?=?'php1');
$param?=?array("title"?=?'php1','author'='test');
$joe?=?$collection-update($sign,?$param);
刪除一個(gè)數(shù)據(jù)庫:
復(fù)制代碼?代碼示例:
$m?-?dropDB(“comedy”);
列出所有可用數(shù)據(jù)庫:
復(fù)制代碼?代碼示例:
$m-listDBs();???//無返回值
附,mongodb常用的數(shù)據(jù)庫方法
MongoDB中有用的函數(shù):
創(chuàng)建一個(gè)MongoDB對象
復(fù)制代碼?代碼示例:
?php
$mo?=?new?Mongo();
$db?=?new?MongoDB($mo,’dbname’);//通過創(chuàng)建方式獲得一個(gè)MongoDB對象
刪除當(dāng)前DB
復(fù)制代碼?代碼示例:
?php
$db?=?$mo-dbname;
$db-drop();
獲得當(dāng)前數(shù)據(jù)庫名
復(fù)制代碼?代碼示例:
?php
$db?=?$mo-dbname;
$db-_tostring();
選擇想要的collection:
復(fù)制代碼?代碼示例:
A:
$mo?=?new?Mongo();
$coll?=?$mo-dbname-collname;//獲得一個(gè)collection對象
B:
$db?=?$mo-selectDB(’dbname’);
$coll?=?$db-collname;
C:
$db?=?$mo-dbname;
$coll?=?$db-collname;
D:
$db?=?$mo-dbname;
$coll?=?$db-selectCollectoin(’collname’);//獲得一個(gè)collection對象
插入數(shù)據(jù)(MongoCollection對象):
MongoCollection::insert(array?$a,array?$options)
array?$a?要插入的數(shù)組
array?$options?選項(xiàng)
safe?是否返回操作結(jié)果信息
fsync?是否直接插入到物理硬盤
例子:
復(fù)制代碼?代碼示例:
$coll?=?$mo-db-foo;
$a?=?array(’a’=’b’);
$options?=?array(’safe’=true);
$rs??=$coll-insert($a,$options);
$rs為一個(gè)array型的數(shù)組,包含操作信息
刪除數(shù)據(jù)庫中的記錄(MongoCollection對象):
MongoCollection::remove(array?$criteria,array?$options)
array?$criteria??條件
array?$options?選項(xiàng)
safe?是否返回操作結(jié)果
fsync?是否是直接影響到物理硬盤
justOne?是否只影響一條記錄
例子:
復(fù)制代碼?代碼示例:
$coll?=?$mo-db-coll;
$c?=?array(’a’=1,’s’=array(’$lt’=100));
$options?=?array(’safe’=true);
$rs?=?$coll-remove($c,$options);
$rs為一個(gè)array型的數(shù)組,包含操作信息
更新數(shù)據(jù)庫中的記錄(MongoCollection對象):
MongoCollection::update(array?$criceria,array?$newobj,array?$options)
array?$criteria??條件
array?$newobj?要更新的內(nèi)容
array?$options?選項(xiàng)
safe?是否返回操作結(jié)果
fsync?是否是直接影響到物理硬盤
upsert?是否沒有匹配數(shù)據(jù)就添加一條新的
multiple?是否影響所有符合條件的記錄,默認(rèn)只影響一條
例子:
復(fù)制代碼?代碼示例:
$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為一個(gè)array型的數(shù)組,包含操作信息
查詢collection獲得單條記錄(MongoCollection類):
array?MongoCollection::findOne(array?$query,array?$fields)
array?$query?條件
array?$fields?要獲得的字段
例子:
復(fù)制代碼?代碼示例:
$coll?=?$mo-db-coll;
$query?=?array(’s’=array(’$lt’=100));
$fields?=?array(’a’=true,’b’=true);
$rs?=?$coll-findOne($query,$fields);
如果有結(jié)果就返回一個(gè)array,如果沒有結(jié)果就返回NULL
查詢collection獲得多條記錄(MongoCollection類):
MongoCursor?MongoCollection::find(array?$query,array?$fields)
array?$query?條件
array?$fields?要獲得的字段
例子:
復(fù)制代碼?代碼示例:
$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行
返回一個(gè)游標(biāo)記錄對象MongoCursor。
針對游標(biāo)對象MongoCursor的操作(MongoCursor類):
循環(huán)或結(jié)果記錄:
復(fù)制代碼?代碼示例:
$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);
//完成你的問題需要先假設(shè)幾個(gè)變量//傳值的id$aId = $_GET['id'] //要修改的新check內(nèi)容$newCheck = "aaa";//要在表B中加的數(shù)值$addContent = "20";//第一個(gè)SQL更新表A中的check內(nèi)容$sql1 = "UPDATE `A` SET `check`='".$check."' WHERE `aid`=".$_GET['id'];//第二個(gè)SQL獲取表B中的相關(guān)信息$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內(nèi)容=$score。$newScore = $score.$addContent;//更新表B中數(shù)據(jù)$sql3 = "UPDATE `B` SET `score`='".$newScore."' WHERE `bid`=".$bid;
新聞名稱:php更新數(shù)據(jù)表中的記錄,php動(dòng)態(tài)更新數(shù)據(jù)
網(wǎng)站鏈接:http://chinadenli.net/article34/hegese.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、App開發(fā)、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司、營銷型網(wǎng)站建設(shè)、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)