php的PDO连接数据库(二)

来源:互联网 发布:网络电玩捕鱼游戏 编辑:程序博客网 时间:2024/05/22 18:02

上次讲到了PDO的connect()方法和insert()方法

时间隔得不久,就昨天的事情,那么就趁热打铁

现在还剩update()和delete()方法了

那么继续思考,update()方法需要什么参数,我们不妨拿出update()的sql语句出来看看

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
---来自W3school


Person是表名,也就是$table了

FirstName是表中的字段名,也可以看作$key

‘ Fred ’是字段下的值,也可以看作$values

还有一个就是where,因为where十分多变,所以不能封装成任意能用的

最后

function update($table,$array,$where=null)

update()里面更新的数据肯定不止一个,那么这里就有一个连接字段的东西,也是一个难点

FirstName = 'Fred'
这里可以看出,更新的格式是:字段名 = ‘字段值’(如果有多个字段,用“,”隔开)

所以,第一个字段没有“,”,然后接下来的字段都要用“,”隔开

最后,拼接的方法为:

foreach ($array as $key => $value){
            if(isset($str) == null){
                $sep = "";
            }else{
                $sep = ",";
            }
            $str .= $sep.$key."='".$value."'";
        }


那么,update()应该算是完成了。

最终代码为:

function update($table,$array,$where=null){    try {        $conn = connect();        foreach ($array as $key => $value){            if(isset($str) == null){                $sep = "";            }else{                $sep = ",";            }            $str .= $sep.$key."='".$value."'";        }        $sql = "update {$table} set {$str} ".($where == null?null:"where".$where);        $result = $conn->query( $sql );        if($result){            return $result;        }else{            return false;        }    } catch (PDOException $e) {        echo "更新数据失败".$e->getMessage();    }}

那么,现在到delete()方法了。

delete()方法相对简单

先看看delete的语句

DELETE FROM Person WHERE LastName = 'Wilson' 

可见,只有$table和$where条件

所以也不需要做什么东西了

最主要的是运用where的选择语句

$where = $where == null?null:"where".$where;

好了,话不多说,上代码:

function delete( $table,$where = null ){    try {        $conn = connect();        $where = $where == null?null:"where".$where;        $sql = "delete from {$table} {$where}";        $result = $conn->exec ( $sql );        return $result;    } catch (PDOException $e) {        echo "删除数据失败".$e->getMessage();    }

增删改查,我都给大家分析了一下,关键也是要思考

代码是我从慕课网的一个原生电商平台上学习的

那么最大的一个感触就是,要学会拼接语句

以及,原生和框架开发的区别

框架之所以能快速开发是因为不用每次都自己造轮子

mysql的操作都是由封装的

比如Thinkphp3.2里面使用M()方法来使用curl

但是方法还是使用原生的比较容易理解

好啦

欢迎指正


原创粉丝点击