php的PDO连接数据库(二)

时间:2022-12-11 12:19:06

上次讲到了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

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

好啦

欢迎指正