PHP/MySQL | PDO::подключение
Это правильное подключение? Просто на некоторых сайтах пишут, что так делать нельзя.
// Подключение к БД
try {
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
} catch (PDOException $e) {
die('Подключение не удалось: '.$e->getMessage());
}
Или можно обойтись этим?
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
// Подключение к БД
try {
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
} catch (PDOException $e) {
die('Подключение не удалось: '.$e->getMessage());
}
Или можно обойтись этим?
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
![](/views/icon/no_avatar.png)
DELETED
8 января 2017, в 0:53
Delete
Jesk, у меня там просто define
![](/views/icon/no_avatar.png)
DELETED
8 января 2017, в 0:57
Delete
$host = 'хост';
$dbname = 'имя базы данных';
$user = 'пользователь базы данных';
$password = 'пароль к базе данных';
try {
$db = new PDO("mysql:host=$host;dbname=$dbname", $user, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->exec("set names utf8");
Без try / catch лучше
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS, array(PDO::ATTR_PERSISTENT => true)) or die('Нет подключения к базе данных!');
Freedom, чем ?
Пример 1:
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
function blabla() {
// запрос к базе
}
Пример 2:
function blabla() {
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
// запрос к базе
}
Почему пример-2 работает, а пример-1 нет? Ломаю голову над этим!
________
посл. ред. 08.01.2017 в 01:10; всего 2 раз(а); by rekmixa
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
function blabla() {
// запрос к базе
}
Пример 2:
function blabla() {
$connect = new PDO('mysql:host='.DB_HOST.';dbname='.DB_NAME.';charset=utf8', DB_USER, DB_PASS);
// запрос к базе
}
Почему пример-2 работает, а пример-1 нет? Ломаю голову над этим!
________
посл. ред. 08.01.2017 в 01:10; всего 2 раз(а); by rekmixa
try catch не вредно! Просто помогут выловить ошибку от соединения с кодом чтобы легче выводить свои сообщения. Так как при ошибки будет выведен строка соединеня данные а это уже уязвимость!
262110938, там сказано, что не стоит так делать.
http://phpfaq.ru/pdo#exceptions
http://phpfaq.ru/pdo#exceptions
Стр.: 1, 2