php更新数据表中的记录 php更新数据库数据

PHP怎么更新mysql数据库

MySQL

10年积累的成都网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有临泉免费网站建设让你可以放心的选择与我们合作。

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中如何同时向2个表更新数据

//完成你的问题需要先假设几个变量//传值的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;

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

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);

php查询数据库后,显示出来的表格具有填写和更改功能,而且点击发送按钮后,更新数据库中的数据

一个简单的方法,把每一行的数据放在一个form表单里面,action链接为update.php?id=XXX,发送按钮为submit,每行的数据都放在input表单里面,这样你可以直接在里面修改值,点发送获取id用update语句更新每行的数据。

当然,把数据都放在表单input text里面不好看,可以用一个编辑按钮使用javascript控制

php读取mysql数据库并更新某个记录?

?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每天抓取数据并更新新

以前我用过querylist插件抓数据,服务器写和定时器,每天固定时间去运行脚本。朝这个方式试试

高并发下数据的更新,应该 update table xxx set num = num - 1 的方式,这种方式可以保证数据的正确性。

但是会出现 num 为负数的问题,如果库存为负数,显然是不合理的。

于是,需要将 num 字段设置为 无符号整型,这样就不会出现负数了,因为,如果减到负数,就会更新失败。

但是这种依然会造成很多无用的更新语句的执行,是不合理的。

于是,update table xxx set num = num - 1 where num 0,

这样当 num 等于0之后就不会去更新数据库了,减少了很多无用的开销。

这种方式被称作“乐观锁”

此外,对于抢红包这种非整数的操作,我们应该转换为整数的操作。

关于抢购超卖的控制

一般抢购功能是一个相对于正常售卖系统来说独立的子系统,这样既可以防止抢购时的高并发影响到正常系统,

也可以做到针对于抢购业务的特殊处理。

在后台设计一些功能,可以就昂正常的商品加入到抢购活动中并编辑成为抢购商品,写入到抢购商品表,当然

也可以把抢购商品表写入redis而不是数据表。并且在原商品表写入一个同样的商品(id相同,用于订单查看,

此商品不可购买)

如果是数据表,为了控制超卖,需要对表进行行锁,更新的时候带上 where goods_amount 0。

如果是redis,使用 hincrby 一个负数来减库存,并且 hincrby 会返回改变后的值,再来判断返回值是否大于0,

因为redis每个命令都是原子性的,这样不用锁表就可控制超卖。


本文标题:php更新数据表中的记录 php更新数据库数据
URL地址:http://myzitong.com/article/hhpecj.html