我在學習PDO with OOP的時候學習了這2個方法,請問哪個用起來更安全?綁定我們使用的所有東西還是只使用?并執行它。1: public function query($query) { $this->stmt = $this->dbh->prepare($query);}public function bind($param, $value, $type = null) { if (is_null($type)) { switch(true){ case is_int($value): $type = PDO::PARAM_INT; break; case is_bool($value): $type = PDO::PARAM_BOOL; break; case is_null($value): $type = PDO::PARAM_NULL; break; default: $type = PDO::PARAM_STR; } } $this->stmt->bindValue($param, $value, $type);}public function execute(){ return $this->stmt->execute();}public function lastInsertId(){ $this->dbh->lastInsertId();}或 2: public function insertRow($query, $params = []){ try { $stmt = $this->datab->prepare($query); $stmt->execute($params); return TRUE; } catch (PDOException $e) { throw new Exception($e->getMessage()); }}
2 回答

MM們
TA貢獻1886條經驗 獲得超2個贊
第二個要好得多,但仍然存在貨物崇拜catch。它不返回任何東西。應該
public function query($query, $params = []){
$stmt = $this->datab->prepare($query);
$stmt->execute($params);
return $stmt;
}
它可以用于任何查詢,不僅可以插入,還可以選擇、更新、刪除等。

隔江千里
TA貢獻1906條經驗 獲得超10個贊
您可以同時使用兩者,但是使用 bind 可以更好地編寫所有類型而不是使用 switch 并且為了縮短您可以使用 2.
public function query($query, $params = []){
global $datab
$stmt = $datab->prepare($query);
$stmt->execute($params);
return $stmt;
}
- 2 回答
- 0 關注
- 170 瀏覽
添加回答
舉報
0/150
提交
取消