За последние 24 часа нас посетили 17840 программистов и 1614 роботов. Сейчас ищет 1451 программист ...

Передача данных в таблицу БД

Тема в разделе "PHP для новичков", создана пользователем lex3000, 11 апр 2016.

  1. lex3000

    lex3000 Новичок

    С нами с:
    19 фев 2016
    Сообщения:
    43
    Симпатии:
    0
    Добрый день!
    У меня есть один вопрос к вам!
    Может сможете помочь

    Уже пару дней мучаюсь не могу понять что не так работает.
    Когда я пытаюсь вставить пользователя в таблицу "Users", просто выдает сообщение, что данная страница не работает.
    Пользуюсь MAMP PRO и PHPSTORM.
    База данных создана и PHPSTORM ее видит, вот только хост не хочет работать правильно.
    Я создал отдельный хост, назвал его "127.0.0.1" в корне для него указан верный путь к файлам проекта.
    При тестовом соединении с БД через PHPSTORM пишет что все успешно и он видит все таблицы которые там.
    В PHPMYADMIN так же все хорошо видно, т.к. им же я и создавал эту БД.
    Вот скрин из MAMP PRO с хостами, врожде все правильно - http://pasteboard.co/4PgjcPm.png

    Выдает такую ошибку - SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known

    Вот мой код :

    Index.php

    PHP:
    1. require_once 'core/init.php';
    2.  
    3. $user = DB::getInstance()->query("SELECT username FROM users WHERE username =?", array('lex'));
    4.  
    5. if($user->error()) {
    6. echo 'No user';
    7. }else {
    8. echo 'OK';
    9. }

    init.php

    PHP:
    1.  
    2. $GLOBALS['config'] = array(
    3. 'mysql' => array(
    4. 'host' => '127.0.0.1',
    5. 'username' => 'root',
    6. 'password' => 'root',
    7. 'db' => 'lr'
    8. ),
    9. 'remember' => array(
    10. 'cookie_name' => 'hash',
    11. 'cookie_expiry' => 604800
    12. ),
    13. 'session' => array(
    14. 'session_name' => 'user'
    15. )
    16. );
    17.  
    18. spl_autoload_register(function($class) {
    19. require_once 'classes/' . $class . '.php';
    20. });
    21.  
    22. require_once 'functions/sanitize.php';


    DB.php

    PHP:
    1. class DB {
    2. private static $_instance = null;
    3. private $_pdo,
    4. $_query,
    5. $_error = false,
    6. $_results,
    7. $_count = 0;
    8.  
    9. private function __construct() {
    10. try{
    11. $this->_pdo = new PDO('mysql:host='. Config::get('mysql/host') .';dbname='. Config::get('mysql/db') ,
    12. Config::get('mysql/username'), Config::get('mysql/password'));
    13. } catch(PDOException $e){
    14. die($e->getMessage());
    15. }
    16. }
    17.  
    18. public static function getInstance() {
    19. if(!isset(self::$_instance)){
    20. self::$_instance = new DB();
    21. }
    22. return self::$_instance;
    23. }
    24.  
    25. public function query($sql, $params = array()) {
    26. $this->_error = false;
    27. $x =1;
    28. if($this->_query = $this->_pdo->prepare($sql)) {
    29. if(count($params)) {
    30. foreach($params as $param) {
    31. $this->_query->bindValue($x, $param);
    32. $x++;
    33. }
    34. }
    35.  
    36. if($this->_query->execute()) {
    37. $this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ);
    38. $this->_count = $this->rowCount();
    39. }else {
    40. $this->_error = true;
    41. }
    42. }
    43.  
    44. return $this;
    45. }
    46. public function error() {
    47. return $this->_error;
    48. }
    49. }

    Если указываю default порты МАМПа, то выдает сообщение - mysql connection refused.
     
  2. difight

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

    С нами с:
    14 авг 2010
    Сообщения:
    23
    Симпатии:
    0
    'host' => 'localhost'
    так попробуйте, вы ж на локалке сайт запускаете?
     
  3. lex3000

    lex3000 Новичок

    С нами с:
    19 фев 2016
    Сообщения:
    43
    Симпатии:
    0
    Пробовал, не помогает.
    Я создал 2 хост и назвал его "127.0.0.1"
    Вышел указал даже скрин хостов
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    лучше посмотреть конфигурацию mysql, там будет написано откуда он ждёт подключение
     
  5. lex3000

    lex3000 Новичок

    С нами с:
    19 фев 2016
    Сообщения:
    43
    Симпатии:
    0
    можете подсказать как это сделать в mamp pro? прочитал вчера всю документацию на английском, так и не нашел этого
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    У меня нету OS X и MAMP PRO, надо как-то выяснить где хранится конфигурация mysql, возможно в файле my.cfg или что-то подобное.
    Проще взять хостинга на linux с ssh, там за тебя будут администрировать сервер.
     
  7. lex3000

    lex3000 Новичок

    С нами с:
    19 фев 2016
    Сообщения:
    43
    Симпатии:
    0
    спасибо, попробую как то настроить