За последние 24 часа нас посетили 18913 программистов и 1577 роботов. Сейчас ищут 1692 программиста ...

Не подключается, через PDO

Тема в разделе "PHP и базы данных", создана пользователем Dimon2x, 14 апр 2017.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    185
    Почему пишет ошибку

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'user'@'localhost' (using password: YES)'

    через mysqli всё нормально
    PHP:
    1. $connect = mysqli_connect('localhost', 'user', '123', 'test_blog');
    а через pdo нет

    PHP:
    1. $pdo = new PDO('mysql:host=localhost; dbname=test_blog; charset=utf8', 'user', '123');
    Я узнал, что не поддерживает, если имя бд написано верблюдом и через _

    и вообще я не понимаю, подключается почему-то только одна БД из всех, что у меня есть, для остальных пишет Unknown database


    Я переименовал эту БД и теперь в неё тоже не пускает

    Может переустановить openserver? ему уже 2 года
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    поставь turnkeylinux в virtualbox или купи хостинг или переустанови Open-Server

    mysqli не пускает?
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.799
    Симпатии:
    1.331
    Адрес:
    Лень
    PHP:
    1. Class SQL
    2. {
    3.     const HOST = 'localhost';
    4.     const DB_NAME = 'blogpric_base';
    5.     const USER = 'root';
    6.     const PASSWORD = '';
    7.     protected static $INSTANCE = NULL;
    8.  
    9.     public static function instance()
    10.     {
    11.         if ( self::$INSTANCE === NULL )
    12.         {
    13.             self::$INSTANCE = new PDO( 'mysql:host=' . self::HOST . ';dbname=' . self::DB_NAME . ';charset=UTF8', self::USER, self::PASSWORD );
    14.             self::$INSTANCE -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
    15.             self::$INSTANCE -> exec ( 'set names utf8' );
    16.         }
    17.      
    18.         return self::$INSTANCE;
    19.     }
    20.     public static function __callStatic( $method, $args )
    21.     {
    22.         return call_user_func_array ( array ( self::instance(), $method ), $args );
    23.     }
    24.     public static function P( $sql, $args = [] )
    25.     {
    26.         $stmt = self::instance() -> prepare( $sql );
    27.         $stmt -> execute( $args );
    28.      
    29.         return $stmt;
    30.     }
    31. }
    --- Добавлено ---
    почему?
    PHP:
    1. exec ( 'set names utf8' );
    Россия (с) хостинги они такие..
     
    Dimon2x нравится это.
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    185
    Установил XAMPP и всё заработало
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Dimon2x, возможно не пускайет потому, что в dsn пробелы.
     
  6. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    185
    @mahmuzar Не вижу никаких пробелов
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Код (Text):
    1. 'mysql:host=localhost; dbname=test_blog; charset=utf8'
    за точкой запятой, попробуй убери пробелы и попробуй. Я не уверен, это предположение.
     
  8. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.210
    Симпатии:
    185
    уже поздно, я удалил openserver
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Dimon2x, покажи сейчас какой у тебя dsn?
    --- Добавлено ---
    Проверил, дело не в пробелах.
     
  10. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    пока не поздно, ставь virtualbox + turnkeylinux