За последние 24 часа нас посетил 22821 программист и 1272 робота. Сейчас ищут 740 программистов ...

Подключение к базе данным mysql

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

  1. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    В общем ребята есть такой код Заранее извиняюсь за глупый вопрос
    Код (Text):
    1.   class Model {//Класс Model Это модель
    2.        
    3.     public $db;//Создается свойство $db в котором сохранен дескриптор подключения к базе данных
    4.    
    5. // Подключаемся к базе данных методом конструтора
    6.     public function __construct($host,$user,$password,$db){//Создаем аргументы в функции подключения к базе данных
    7. $this->db = mysql_connect($host,$user,$pass);//заносим сюда значения констант с файла конфиг
    8. if(!$this->db){//Если не удается инициализировать подключение к базе данных
    9.     exit('Not connection is database');//то выводим сообщение и выходим с программы
    10. }
    11.  
    12. if(!mysql_select_db($db,$this->db)){//Запрос на выбор базы данных mysql где
    13.    exit('no table'); //???????????????????????????????????????
    14. }
    15.  
    16. mysql_query("SET NAMES cp1251");//Если подкоючились к базе данных то осуществляем запрос на установку кодировки
    17. return $this->db;//возвращаем
    18. }//
    19.  
    20.     public function get_all_db(){//Фу возвращающая 10 строк (статей) с таблицы базы данных
    21.     //Создаем sql запрос Выбрать значение UNIV_ID,UNIV_NAME,RATING,CITY из таблицы UNIVERSITY
    22.     $sql="SELECT UNIV_ID,UNIV_NAME,RATING,CITY FROM UNIVERSITY LIMIT 10"; //и установить лимит в 10 строк
    23.     $res=mysql_query($sql); //Отправляем запрос строки при помощи встроенной функции mysql_query
    24.     if(!$res){//Если переменная $res не вернет ничего то вернем значение FALSE
    25.     return FALSE;//
    26.     }
    27.     //функция mysql_num_rows возвращает количество рядов результата запроса у нас их будет 10
    28.     for ($i=0;$i<mysql_num_rows($res);$i++){//Осуществляем цикл for пока $i меньше 10
    29.     $row[]=mysql_fetch_array($res,MYSQL_ASSOC); //  то в массив $row записываем ассоциативный массив результат запроса
    30.     }//
    31.     return $row;//возвращаем массив $row
    32.     }//
    33.    
    34.     //Функция вывода одной строки информации базы данных для главной страницы
    35.     public function get_one_db($id){//аргумент $id указывает какую строку с базы данных выводить
    36.     $sql = "SELECT UNIV_ID,UNIV_NAME,RATING,CITY FROM UNIVERSITY WHERE UNIV_ID='$id'";//Строка запроса сохраняем в переменную
    37.     //Выбрать UNIV_ID,UNIV_NAME,RATING,CITY из таблицы UNIVERSITY где UNIV_ID равен значению аргумента который мы вводим в начале функции
    38.     $res = mysql_query($sql);////отправляем запрос в базу данных и результат сохраняем в переменной $res
    39.     if(!$res){//Если пере $res не вернет ничего то вернем значение FALSE
    40.         return FALSE;//
    41.     }
    42.     ////А если вернет значение переменная $res то при помощи функции mysql_fetch_array результат записываем
    43.     $row = mysql_fetch_array($res,MYSQL_ASSOC);//в ассоциативный массив и присваиваем значние  переменной $row
    44.     return $row;//Возвращаем ассоциативный массив находяшийся в переменной $row функции
    45.     }//
    46.  
    47. }
    48.  
    49. ?>
    код отрабатывает в mvc нормально

    Не могу понять один момент:
    Почему конструктор срабатывает
    Код (Text):
    1. public function __construct($host,$user,$password,$db){//Создаем аргументы в функции подключения к базе данных
    2. $this->db = mysql_connect($host,$user,$pass);//заносим сюда значения констант с файла конфиг
    3. if(!$this->db){//Если не удается инициализировать подключение к базе данных
    4.     exit('Not connection is database');//то выводим сообщение и выходим с программы
    5. }
    6.  
    7. if(!mysql_select_db($db,$this->db)){//Запрос на выбор базы данных mysql где
    8.    exit('no table'); //???????????????????????????????????????
    9. }
    10.  
    11. mysql_query("SET NAMES cp1251");//Если подкоючились к базе данных то осуществляем запрос на установку кодировки
    12. return $this->db;//возвращаем
    13. }//

    Если там отсутствует функция mysql_select_db($db,$this->db)
    mysql_select_db($db//название базы,$this->db//запрос на соединение коннект)

    Она там есть но в виде
    Код (Text):
    1. if(!mysql_select_db($db,$this->db)){//Запрос на выбор базы данных mysql где
    2.    exit('no table'); //???????????????????????????????????????
    3. }
    отработки ошибки

    А как она базу находит??
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    почему ты еще в каменном веке тусуешься ?
    --- Добавлено ---
    mysql устарел
     
  3. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    mysqli по моему да надо использовать?

    материал вроде с видеоурока 2016 года.

    Ту книгу по PHP 2010 года оставил думал свежий видеоурок, и тут подстава такая опять
     
  4. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @Рихард что за видеокурс? Смотри лучше PHP Start
     
  5. keren

    keren Новичок

    С нами с:
    15 ноя 2017
    Сообщения:
    513
    Симпатии:
    42
    А почему не должна находить? В if валидный код который отрабатывает и заносит в свойство $this->db имя базы, но знак "!" дает фолс и условие в скобках exit('no table') не срабатывает и код продолжается.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
  7. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    в Общем курс по фреймворку Yii2 от Кудлая Русакова, там в качестве бонуса три программы(подкурса):
    1. Основы PHP
    2. ООП в PHP как раз этот пример что я сюда выложил это последний урок по курсу основы ООП, называется разработка собственного mvc
    3. Основы Mysql
    --- Добавлено ---
    PHP start это курс или книга? и где ее найти
    --- Добавлено ---
    получается если FALSE условие не выполнилось он сам подключился ? как то так?
    --- Добавлено ---
    там все на английском на ГитХабе тяжеловато понять примеры без объяснений
     
  8. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @Рихард Забудь кто такой Русаков. Кудлая смотреть можно.
    PHP Start это курс
     
  9. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    Андрей Кудлай | Фреймворк YII2 с Нуля до Профи вот это курс с торрента скачан,там в бонусах были основы ооп и этот пример.

    PHP Start это практический курс Зинченко??
     
  10. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @Рихард да Зинченко, тебе надо пройти первый курс по основам
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    мм, зеленый пояс по программированию
     
  12. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    благодарю всех,я думал через недельку начать изучение фреймворка,но все таки месяцок еще подожду))
     
  13. Mitai

    Mitai Новичок

    С нами с:
    23 окт 2016
    Сообщения:
    155
    Симпатии:
    24
    Как по мне что Русаков что Кудлай, два сапога пара, я бы рекомендовал вот этого парня, он дает конечно лишь базу, все остальное платные курсы, но при желании можно и их найти ( поднять паруса и пиратский флаг )
     
  14. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    без английского, далеко от основ не уйдешь
     
  15. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
  16. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    @Dimon2x откуда такая точность в цифрах?)
     
  17. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184
    @smitt у меня есть свой словарик
     
    Алекс8 нравится это.
  18. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    а предлоги ?
     
  19. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.199
    Симпатии:
    184