Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не выбирается база данных

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
zapatronen
Отправлено: 24 Марта, 2017 - 00:01:17
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Товарищи, пожалуйста тыкните почему не выбирает ся база данных я уже закалебался, весь на нервах, беру же гребаный рабочий пример


PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. //Хост
  4. define("HOST","localhost");
  5. //Имя пользователя
  6. define("USER","user");
  7. //Пароль
  8. define("PASS","password");
  9. //имя базы данных
  10. define("DB","database");
  11. /**
  12. * Основные функции
  13. */
  14.  
  15. //соединение с базой данных
  16. function db($host,$user,$pass,$database) {
  17.         $db = mysqli_connect($host,$user,$pass) or die('sdsdsd');
  18.         if (!$db) {
  19.                 exit('Ошибка при подключении к базе данных');
  20.         }
  21.        
  22.         if(!mysqli_select_db($database,$db))  {
  23.                 exit('База данных не существует');
  24.         }
  25.         mysqli_query('SET NAMES utf8');
  26. }
  27.  
  28.  
  29. header("Content-Type:text/html;charset=utf8");
  30.  
  31. //соединение с базой данных
  32. db(HOST,USER,PASS,DB);
  33.  
  34. ?>
  35.  
  36.  


Пишет, что база данных не существует, конектится к базе без проблем
if(!mysqli_select_db($database,$db)) {
exit('База данных не существует');
}

С уважением, Павел
 
 Top
Строитель Модератор
Отправлено: 24 Марта, 2017 - 00:30:27
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




zapatronen, ваша функция должна возвращать mysqli - объект, который вы должны использовать в следующих функциях для работы с бд. Посмотрите на этот пример :
PHP:
скопировать код в буфер обмена
  1. function dbConnect() {
  2.     include 'config.php';
  3.     $link = mysqli_connect($host, $user, $pass, $name);
  4.  
  5.     if (mysqli_connect_errno()) {
  6.         die('Не удалось подключиться:<br />'. mysqli_connect_error());
  7.     }
  8.    
  9.     if (!mysqli_set_charset($link, 'utf8')) {
  10.         die('Ошибка при выборе кодировки utf8:<br />'. mysqli_error($link));
  11.     }
  12.    
  13.     return $link;
  14. }
  15.  
  16. // Использование
  17.  
  18. $db = dbConnect();
  19.  
  20. $txt = 'Некий текст';
  21. $sql = "
  22.    INSERT INTO `table_name`
  23.    SET `field_name` = '". mysqli_real_escape_string($db, $txt) ."'
  24. ";
  25.  
  26. mysqli_query($db, $sql);
 
 Top
zapatronen
Отправлено: 24 Марта, 2017 - 10:53:13
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




Это понятно, функция подключается к базе данных, база создана, но она не выбирается
 
 Top
Строитель Модератор
Отправлено: 24 Марта, 2017 - 10:57:55
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




zapatronen, она выбирается в момент коннекта (обратите внимание на четвёртый параметр)
 
 Top
Мелкий Супермодератор
Отправлено: 24 Марта, 2017 - 11:05:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




У mysql можно и после коннекта выбирать. И даже к другой бд подключаться потом.
Только внимание на параметры mysqli_select_db. И следовательно, см. error_reporting. Должна быть явная и недвусмысленная ошибка.


-----
PostgreSQL DBA
 
 Top
yaji2k
Отправлено: 24 Марта, 2017 - 14:19:27
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Март 2017  


Помог: 0 раз(а)




Скорей всего Вы уже нашли ошибку, но на всякий случай напишу.


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. // $db -ссылка на соединение с mysql, а потом уже имя базы данных $database
  3.  
  4. mysqli_select_db($db,$database)
  5.  


Вообще рекомендую сократить код, добавив в mysqli_connect имя базы данных в качестве 4-го параметра , как уже написали выше.

(Отредактировано автором: 24 Марта, 2017 - 14:25:18)

 
 Top
zapatronen
Отправлено: 24 Марта, 2017 - 15:40:10
Post Id



Гость


Покинул форум
Сообщений всего: 103
Дата рег-ции: Июль 2011  


Помог: 0 раз(а)




yaji2k, спасибо огромное, действительно всего лишь надо было переменные поменять местами, в статье было все так и в комментариях все писали, что все работает...

Благодарю ребята, хороших выходных!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB