За последние 24 часа нас посетили 110749 программистов и 7652 робота. Сейчас ищут 2929 программистов ...

Ошибка в подключению к БД SQL

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

  1. AlexG.

    AlexG. Новичок

    С нами с:
    20 июн 2018
    Сообщения:
    3
    Симпатии:
    0
    Добрый день!
    Есть код подключения к БД, на виндовс он работает отлично
    PHP:
    1. $db = new PDO('mysql:host=localhost;dbname=test','root','root');
    2.     $db->exec('SET NAMES UTF8');
    Но на маке уже пишет ошибку
    Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in -:3 Stack trace: #0 -(3): PDO->__construct('mysql:host=loca...', 'root', 'root') #1 {main} thrown in - on line 3

    Не пойму, в чем проблема. Помогите разобраться
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.841
    Симпатии:
    1.338
    Адрес:
    Лень
    Change the Host name from localhost to 127.0.0.1
     
  3. AlexG.

    AlexG. Новичок

    С нами с:
    20 июн 2018
    Сообщения:
    3
    Симпатии:
    0
    Спасибо, попробую.
     
  4. AlexG.

    AlexG. Новичок

    С нами с:
    20 июн 2018
    Сообщения:
    3
    Симпатии:
    0
    Не сработало
    Нашел такой код, ошибок не выдает, только теперь не могу понять проверить что подключение прошло успешно
    PHP:
    1. $localhost   = array(
    2.     'driver' => 'mysql',
    3.     'host' => 'localhost',
    4.     'dbname' => 'test',
    5.     'username' => 'root',
    6.     'password' => 'root');
    7.  
    8. Class DBConnection {
    9.     // Database Connection Configuration Parameters
    10.     // array('driver' => 'mysql','host' => '','dbname' => '','username' => '','password' => '')
    11.     protected $_config;
    12.     // Database Connection
    13.     public $dbc;
    14.     /* function __construct
    15.      * Opens the database connection
    16.      * @param $config is an array of database connection parameters
    17.      */
    18.     public function __construct( array $config ) {
    19.         $this->_config = $config;
    20.         $this->getPDOConnection();
    21.     }
    22.     /* Function __destruct
    23.      * Closes the database connection
    24.      */
    25.     public function __destruct() {
    26.         $this->dbc = NULL;
    27.     }
    28.     /* Function getPDOConnection
    29.      * Get a connection to the database using PDO.
    30.      */
    31.     private function getPDOConnection() {
    32.         // Check if the connection is already established
    33.         if ($this->dbc == NULL) {
    34.             // Create the connection
    35.             $dsn = "" .
    36.                 $this->_config['driver'] .
    37.                 ":host=" . $this->_config['host'] .
    38.                 ";dbname=" . $this->_config['dbname'];
    39.             try {
    40.                 $this->dbc = new PDO( $dsn, $this->_config[ 'username' ], $this->_config[ 'password' ] );
    41.             } catch( PDOException $e ) {
    42.                 echo __LINE__.$e->getMessage();
    43.             }
    44.         }
    45.     }
    46.     /* Function runQuery
    47.      * Runs a insert, update or delete query
    48.      * @param string sql insert update or delete statement
    49.      * @return int count of records affected by running the sql statement.
    50.      */
    51.     public function runQuery( $sql ) {
    52.         try {
    53.             $count = $this->dbc->exec($sql) or print_r($this->dbc->errorInfo());
    54.         } catch(PDOException $e) {
    55.             echo __LINE__.$e->getMessage();
    56.         }
    57.         return $count;
    58.     }
    59.     /* Function getQuery
    60.      * Runs a select query
    61.      * @param string sql insert update or delete statement
    62.      * @returns associative array
    63.      */
    64.     public function getQuery( $sql ) {
    65.         $stmt = $this->dbc->query( $sql );
    66.         $stmt->setFetchMode(PDO::FETCH_ASSOC);
    67.         return $stmt;
    68.     }
    69. }