我在学习POP和OOP时学习了这两种方法,我想问一下哪种方法更安全?绑定我们使用的所有内容或仅使用?并执行它。
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());
}
}
第二个要好得多,但仍然有一个货神教徒catch
。它不返回任何东西。应该是
public function query($query, $params = []){
$stmt = $this->datab->prepare($query);
$stmt->execute($params);
return $stmt;
}
它可以用于任何查询,不仅可以插入,还可以选择,更新,删除等。