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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: DB connected
phphtmlcss
Отправлено: 12 Марта, 2013 - 17:34:01
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2013  


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

[+][+][+]


Привет!
Ситуация следующая! когда начинал юзать пхп то с базой данных соединялся таким образом, с помощью переменных
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $db_host = 'localhost';
  3. $db_user = 'root';
  4. $db_pass = '';
  5. $db = 'site';
  6.  
  7. $site_url = 'http://site.com/';
  8. mysql_connect($db_host, $db_user, $db_pass) or die("No conected to server!");
  9. mysql_select_db($db) or die("No select DB");
  10. mysql_query("SET NAMES 'utf8'") or die("Can't set charset");
  11.  
  12. ?>

Пришло время продвинутся далее и уже нужно грамотное соединение так как считается хорошим стилем программирования вести соединение с помощью констант
в файле конфига пишу так
PHP:
скопировать код в буфер обмена
  1. define('HOST', 'localhost');
  2. define('USER', 'root');
  3. define('PASS', '');
  4. define('DB', 'connect');


далее обращаюсь к базе через запрос
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once './config.php';
  3.  
  4.  
  5. $dcb = mysql_connect(HOST, USER, PASS, DB) or die("ERROR connected to SERVER");
  6.  
  7. $query = "SELECT * FROM comment";
  8. $result = mysql_query($dcb, $query);
  9. while($row = mysql_fetch_array($result)){
  10. echo $row['comment'];
  11.  
  12. }
  13.  
  14. ?>


ошибки!
CODE (html):
скопировать код в буфер обмена
  1. Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in D:\home\connect.com\www\index.php on line 8
  2.  
  3. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\connect.com\www\index.php on line 9
  4. HELLO WORD

Что с этим запросом не так???
 
 Top
LIME
Отправлено: 12 Марта, 2013 - 17:38:39
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




ты вырезал что-то лишнее из кода...давай как есть
(Добавление)
phphtmlcss пишет:
так как считается хорошим стилем программирования вести соединение с помощью констант
это почему это?
 
 Top
phphtmlcss
Отправлено: 12 Марта, 2013 - 17:42:25
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2013  


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

[+][+][+]


LIME пишет:
ты вырезал что-то лишнее из кода...давай как есть

Файл конфиг
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. define('HOST', 'localhost');
  4. define('USER', 'root');
  5. define('PASS', '');
  6. define('DB', 'connect');
  7.  
  8. mysql_query("SET NAMES 'utf8'") or die("Can't set charset");
  9.  
  10. ?>

index.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once './config.php';
  3.  
  4.  
  5. $dcb = mysql_connect(HOST, USER, PASS, DB) or die("ERROR connected to SERVER");
  6.  
  7. $query = "SELECT * FROM comment";
  8. mysql_query($dcb, $query);
  9. while($row = mysql_fetch_array($result)){
  10. echo $row['comment'];
  11.  
  12. }
  13.  
  14.  
  15. ?>
  16.  
  17.  
  18. <?PHP
  19. echo 'HELLO WORD';
  20. ?>

Все!
 
 Top
LIME
Отправлено: 12 Марта, 2013 - 17:45:21
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




phphtmlcss пишет:
mysql_query("SET NAMES 'utf8'") or die("Can't set charset");
только после коннекта
и выбора базы
куда дел выбор базы?
phphtmlcss пишет:
mysql_select_db($db) or die("No select DB");
 
 Top
phphtmlcss
Отправлено: 12 Марта, 2013 - 17:53:02
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2013  


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

[+][+][+]


[quote=LIME]
phphtmlcss пишет:
mysql_query("SET NAMES 'utf8'") or die("Can't set charset");
только после коннекта
и выбора базы
куда дел выбор базы?


С 1 аргументом понятно, а со вторым я ни чего не пойму!
я в константе определил базу данных, в запросах вытаскиваю ее зачем мне переменная с именем базы данных?
phphtmlcss пишет:
mysql_select_db($db) or die("No select DB");
 
 Top
Мелкий Супермодератор
Отправлено: 12 Марта, 2013 - 17:55:57
Post Id



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


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


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




phphtmlcss пишет:
так как считается хорошим стилем программирования вести соединение с помощью констант

Не считается. Зачем держать в глобальной области видимости то, что нужно один единственный раз в одном единственном месте кода?

Хороший вариант - это singleton. И переходите на pdo или mysqli, mysql_* давным давно устарели.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 12 Марта, 2013 - 17:56:28
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




а разве mysql_connect позволяет это делать?
mysqli ...
 
 Top
phphtmlcss
Отправлено: 12 Марта, 2013 - 18:11:55
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2013  


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

[+][+][+]


Мелкий пишет:
phphtmlcss пишет:
так как считается хорошим стилем программирования вести соединение с помощью констант

Не считается. Зачем держать в глобальной области видимости то, что нужно один единственный раз в одном единственном месте кода?

Хороший вариант - это singleton. И переходите на pdo или mysqli, mysql_* давным давно устарели.


Все зависит от того что вы пишите ну в смысле какой сайт! Если при использовании одного подключения в фале например конфиг, то запрос фактически остается открыт и это как раз не верное решение!
Так как при наплыве посетителей на сайте более 100 скажем то загнется та страница на которую больше было обращений, не успевания интерпретации браузером приводит к длительны ожидание открытие страницы!
Выход! Соединится с базой и выходить при каждом запросе прочитаете мануал будет вам полезно!
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. require_once './config.php';
  4. $dcb = mysql_connect(HOST, USER, PASS, DB) or die("ERROR connected to SERVER"); // соединение
  5. // запрос
  6. }
  7.  
  8.  
  9. mysql_close($dcb); // выход
  10. ?>
  11.  
 
 Top
DelphinPRO
Отправлено: 12 Марта, 2013 - 18:15:45
Post Id



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


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


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




phphtmlcss пишет:
Так как при наплыве посетителей на сайте более 100 скажем то загнется та страница

ну-ну Улыбка
phphtmlcss пишет:
прочитаете мануал будет вам полезно!

Вам самому бы не помешало почитать умные книжки...


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
LIME
Отправлено: 12 Марта, 2013 - 18:17:48
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




ААААААААа!!!!!!.....такого караула я еще не видел Ха-ха Ха-ха Ха-ха
 
 Top
Мелкий Супермодератор
Отправлено: 12 Марта, 2013 - 18:17:52
Post Id



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


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


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




Я не ослышался, вы предлагаете на каждый запрос к базе открывать и закрывать коннект?
Простите, я слишком удивлён, чтобы комментировать этот фееричный бред.


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 12 Марта, 2013 - 18:18:34
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




можно я ему спасибо поставлю))))
 
 Top
phphtmlcss
Отправлено: 12 Марта, 2013 - 18:25:30
Post Id


Новичок


Покинул форум
Сообщений всего: 47
Дата рег-ции: Янв. 2013  


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

[+][+][+]


LIME пишет:
можно я ему спасибо поставлю))))

Я тебе разрешаю!
А книги, советую, читай!
 
 Top
esterio
Отправлено: 12 Марта, 2013 - 18:33:37
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




phphtmlcss
Где Вы ето вичитали? неужели у Попова? Я в шокеох*е.
Цитирую офф доку http://php.net/manual/en/functio...ysql-connect.php
Цитата:
resource mysql_connect ([ string $server = ini_get("mysql.default_host") [, string $username = ini_get("mysql.default_user") [, string $password = ini_get("mysql.default_password") [, bool $new_link = false [, int $client_flags = 0 ]]]]] )

Где вы там видите чтоб был аргумент имя базы?
Далее. Вы хотя б в реали видели высоконагруженый проект или ето только пустая теория без практики. Я не имел дело с проектами овер 100 в секунду, но откривать и закривать соединение при каждом запросе бред. Вы еще скажите что постоянное соединение отличное решение. Ах да книжки Вам стоит почитать так как существует еще черга в мускуле где запросы на изменение имеют большый вес нежели на выборку
 
 Top
LIME
Отправлено: 12 Марта, 2013 - 18:41:42
Post Id


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


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




phphtmlcss пишет:
Я тебе разрешаю!
А книги, советую, читай!
все все ...я не могу больше смеяться...остановись
(Добавление)
esterio до такого бреда даже Попов не додумается
phphtmlcss а можно источник Ваших "знаний"? Безумно интересно!
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB