这是一个创建于 3525 天前的主题,其中的信息可能已经有所发展或是发生改变。
一个表,主键`id` 列`content` 列`pwd`
当密码(`pwd`)符合数据库记载,则允许修改`content`
那么下面两个方式哪一个是良好的做法?
--------
1. 分成两句sql,先查后改
select * where id=12345
php对返回的这一行数据,根据pwd字段判断是否继续执行下一条sql
update set …… where id=12345
--------
2. 是单一sql语句,捏在一起
update set …… where id=12345 and pwd='password'
根据影响了1行还是0行判断执行成功与否
--------
3. 请问,我要在php中prepare并执行下面语句
update set `content`=:content where id=12345
在php中怎么修改该语句,使得当
empty($array[':content'])===true
时,`content`字段不被修改?
|
|
1
lyoe 2015-04-01 22:26:53 +08:00 via iPad
如果你的代码逻辑需要在查询后做一些业务处理然后再update,可以先查再写,注意需要用锁,悲观锁乐观锁都可以,防止并发; 如果仅仅为了更新,一次update判断成功条数就够,节约一次查询;
content为空时不更新,最好分成两条不同的sql;
|