За последние 24 часа нас посетили 21640 программистов и 1018 роботов. Сейчас ищут 764 программиста ...

Подключение к БД, PDO

Тема в разделе "PHP для новичков", создана пользователем AlexandrS, 22 янв 2018.

Метки:
  1. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Ранее вообще не работал с базами данных т.к. параноидален касаемо возможных взломов и т.п., но тут решил начать изучение, а т.к. первое, что нужно сделать, так это подключиться к БД, возник вопрос об актуальном правильном подключении, нашел код, который был назван как "правильное подключение"
    PHP:
    1.     $host = '127.0.0.1';
    2.     $db   = 'test';
    3.     $user = 'root';
    4.     $pass = '';
    5.     $charset = 'utf8';
    6.  
    7.     $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
    8.     $opt = [
    9.         PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    10.         PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    11.         PDO::ATTR_EMULATE_PREPARES   => false,
    12.     ];
    13.     $pdo = new PDO($dsn, $user, $pass, $opt);
    И тут я наткнулся на то, что :
    PHP:
    1. PDO::ATTR_EMULATE_PREPARES   => false
    Не везде встречается, да и в одном месте прочитал, что как раз PDO::ATTR_EMULATE_PREPARES => false, именно в false, заставлял скрипт работать в 2 раза дольше. Отсюда вопрос, нужна ли эта сторока вообще или нет?
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.553
    Симпатии:
    1.754
    @AlexandrS, документацию по PDO не пробовал читать? EMULATE_PREPARES false заставляет PDO использовать настоящие подготовленные запросы, которые реализованы на уровне самой БД, если true - то он сам занимается подготовкой запросов, экранируя данные с помощью PDO::quote, если у кого-то значение этого флага замедляло выполнение в два раза, он криво написал код, вот и всё.

    Вообще, я не знаю, что такое "правильное подключение"... Надо понимать, что и почему ты делаешь, а не юзать чужие снипеты. В доке всё нормальным русским языком написано. https://secure.php.net/manual/ru/book.pdo.php
    --- Добавлено ---
    https://secure.php.net/manual/ru/pdo.drivers.php
     
    Deonis и AlexandrS нравится это.
  3. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Ну у меня подход такой, я сначала поковыряю, а потом читаю, чтоб иметь понятие, что это вообще.