PDO数据库操作类——更新数据的实现

[文章作者:磨延城 转载请注明原文出处: https://mo2g.com/view/79/ ]

mPHP核心框架使用PDO数据库抽象层往数据表中更新、插入或者删除数据,都是通过PDO的exec()方法,如果你熟悉Mysql数据库的sql语句,那么理解起来就更轻松了,你可以把它当作mysql的query()来使用,而且exec()执行完毕还会返回影响的数据行总数.

mPHP核心框架使用PDO数据库抽象层往数据表中更新、插入或者删除数据,都是通过PDO的exec()方法,如果你熟悉Mysql数据库的sql语句,那么理解起来就更轻松了,你可以把它当作mysql的query()来使用,而且exec()执行完毕还会返回影响的数据行总数。

例如存在表mo2g_test

id
name
1
PDO
2
mPHP

我们要更新mo2g_test中id为1的数据,把他的name值更改为mysql,那么mysql的使用方法如下

$strSql = "update mo2g_test set name = 'mysql' where id = 1";
mysql_query($strSql);
$reslut = mysql_affected_rows();//返回影响了多少行数据

PDO的exec()更简单

$strSql = "update mo2g_test set name = 'mysql' where id = 1";
$reslut = $pdo->exec($strSql);//返回影响了多少行数据

其实更新数据的sql都有固定的格式:

1)更新一个属性

update 数据表 set 属性名 = '更新内容' where 更新条件

2)更新多个属性

update 数据表 set 属性名1 = '更新内容',属性名2 = '更新内容',属性名n = '更新内容' where 更新条件

所以,我根据这一特征封装了PDO类的update方法

function update($table,$arrData,$condition) {}

1)$table为数据表的名称

2)$arrData为要更新的数据

3)$condition为更新条件

这里我们使用封装好的update演示一下如何更新上述的数据:

$talbe = 'mo2g_test';
$arrData = array('name'=>'mysql');
$condition = 'id = 1';
$pdo->update($table,$arrData,$condition);

update函数的实现代码如下

public function update($table,$arrData,$condition) {
    $flag = 1;
    foreach($arrData as $key => $value) {
        if($flag) {
            $data = "$key = '$value'";
            $flag = 0;
        } else $data .= ",$key = '$value'";
    }
    $strSql = "update $table set $data where $condition";
    if($this->result = $this->db->exec($strSql)) {
        return true;
    }
    return false;
}

如果在使用的过程中遇上什么问题,可以给我留言。

评论:

  1. unknown 回复2015年05月31日 22时41分
    磨者
    好文章,内容一针见血.禁止此消息:nolinkok@163.com
    肉牛 http://www.xmten.com/

  2. unknown 回复2015年06月01日 20时10分
    磨者
    好文章,内容才思敏捷.禁止此消息:nolinkok@163.com
    西门塔尔牛 http://www.xmten.com/

  3. 我来说两句:

      切换  

    磨途歌检测发现,您当前使用的浏览器版本过低,要想使用画板模式,请先更新浏览器

      切换  

    磨途歌随机验证码