Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: PDO PHP MYSQL
Форумы портала PHP.SU » » Вопросы новичков » PDO PHP MYSQL

Страниц (1): [1]
 

1. taig - 13 Сентября, 2016 - 20:31:36 - перейти к сообщению
Как грамотнее всего делать подключения и запросы?
1)В подключении
try {
$this->db = new \PDO('mysql:host='.$this->host.';dbname='.$this->dbname.';charset=utf8', 'root', '',$this->Attr);
$this->db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

} catch (PDOException $e) {
file_put_contents('PDOErrors.txt', $e->getMessage(), FILE_APPEND);
}
2)и Допустим запрос к бд
function Select($query){
$q = $this->db->prepare($query);
$q->execute();

if($q->errorCode() != PDO::ERR_NONE){
$info = $q->errorInfo();
file_put_contents('PDOErrors.txt', $info[2], FILE_APPEND);
}

return $q->fetchAll();
}
а)Т.е. запросы к бд тоже лучше в блок try catch засовывать?
б)Использывать ли beginTransaction, rollback,commit и в каких случаях их лучше использывать?
2. 3d_killer - 14 Сентября, 2016 - 00:41:07 - перейти к сообщению
не нужно запросы засовывать в try, будет тонна бесполезного кода, транзакции использовать нужно в зависимости от проекта, если у вас за действие происходит несколько запросов записи, например в интернет магазине (создание заказа, тут же списание со склада) то желательно использовать транзакции, но они работают на определенном типе таблиц

 

Powered by ExBB FM 1.0 RC1