上次讲到了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
但是方法还是使用原生的比较容易理解
好啦
欢迎指正