php的PDO連線資料庫(二)
上次講到了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
但是方法還是使用原生的比較容易理解
好啦
歡迎指正