Лучший способ использования PDO в процедурной среде

Я просто переключился с MySQL на PDO, и я использую подготовленные заявления.

Раньше у меня была функция для MySQL, и на каждой странице я делал что-то вроде

$Query = "UPDATE users SET f_name={$POST["first_name"]}, l_name={$_POST["last_name"]} "; $SQL_obj->runquery($query, "update"); 

Теперь с PDO и подготовленными операторами имеет смысл создавать функцию, а также просто делать (), bindValue () и execute () для каждого запроса?

Я просто не могу написать хорошую функцию PDO. Может кто подскажет? Мой код в основном процедурный.

Вы можете расширить PDO и добавить вспомогательный метод, который выполняет оба действия:

 class MyPDO extends PDO{ public function prepareAndExecute($sql){ // get all arguments passed to this function as an array $args = func_get_args(); // drop first argument ($sql) array_shift($args); $stm = $this->prepare($sql); $stm->execute($args); return $stm; } } - class MyPDO extends PDO{ public function prepareAndExecute($sql){ // get all arguments passed to this function as an array $args = func_get_args(); // drop first argument ($sql) array_shift($args); $stm = $this->prepare($sql); $stm->execute($args); return $stm; } } 

Затем:

 $results = $connection->prepareAndExecute( 'UPDATE users SET f_name=?, l_name=?', $POST["first_name"], $_POST["last_name"] ); 

( $connection = экземпляр MyPDO )

PDO уже является классом, поэтому его немного убить, чтобы написать вокруг него «обертку». Просто используйте этот способ:

 $Query = "UPDATE users SET f_name=:firstname, l_name=:lastname "; $sth = $dbh->prepare($Query); $sth->execute(array(':firstname' => $_POST['firstname'], ':lastname' => $_POST['lastname'])); 

Например, вы уязвимы для инъекций.