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
Форумы портала PHP.SU :: Версия для печати :: Соединение с базой данных с помощью констант [2]
Форумы портала PHP.SU » » Вопросы новичков » Соединение с базой данных с помощью констант

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

16. phphtmlcss - 12 Марта, 2013 - 18:49:17 - перейти к сообщению
LIME пишет:
phphtmlcss пишет:
Я тебе разрешаю!
А книги, советую, читай!
все все ...я не могу больше смеяться...остановись
(Добавление)
esterio до такого бреда даже Попов не додумается
phphtmlcss а можно источник Ваших "знаний"? Безумно интересно!

Такой источник тебе читать не стоит! А то в клоуна превратишься, просто сморю ты <censored> ели остановился!
17. Vinyl - 12 Марта, 2013 - 18:58:19 - перейти к сообщению
Рот до ушей Вот это информация!
18. esterio - 12 Марта, 2013 - 18:58:28 - перейти к сообщению
phphtmlcss
Так а на личние обиды не стоит переходит так как все тут Вас хотят на путь истинный наставить. Блин я щас тет бо быстромму сделаю и отпишусь.


Неужели интересная тема за неделю
19. sneakquie - 12 Марта, 2013 - 19:12:30 - перейти к сообщению
Извиняюсь, если невнимательно читал тему и TC'y ответили.
PHP:
скопировать код в буфер обмена
  1. $dcb = mysql_connect(HOST, USER, PASS, DB) or die("ERROR connected to SERVER");
  2.  
  3. $query = "SELECT * FROM comment";
  4. mysql_query($dcb, $query);

В функции mysql_query() первым аргументом у Вас является указатель, вторым - сам код запроса. Нужно поменять их местами.
20. esterio - 12 Марта, 2013 - 19:22:05 - перейти к сообщению
Итак результаты теста как я обещал

1. делаем структру таблицы
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `test` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `name` varchar(255) DEFAULT NULL,
  4.   PRIMARY KEY (`id`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8


2. код заполнения таблицы 100 000 записей
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function randWord()
  3. {
  4.         $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  5.         $count = rand(5, 15);
  6.         $str = '';
  7.         for ($i = 0; $i < $count; $i++)
  8.                 $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
  9.         return $str;
  10. }
  11. mysql_connect('localhost', 'root', '');
  12.  
  13. for($i = 0; $i < 100000; $i++)
  14.         mysql_query('INSERT INTO test SET name="'.randWord().'"');


3. делае стартовый запрос
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT SQL_NO_CACHE * FROM `test` WHERE name LIKE "%asd%"

Время 0.031 sec

Итак тест №1 - один раз откриваем базу
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define('START_TIME', microtime(true));
  3.  
  4. mysql_connect('localhost', 'root', '');
  5.  
  6. for($i = 0; $i < 100; $i++)
  7.         mysql_query('SELECT SQL_NO_CACHE * FROM `test` WHERE name LIKE "%asd%"');
  8.  
  9. echo round(microtime(true) - START_TIME, 4).' sec';


Время - 12.7408 sec

Тест №2
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define('START_TIME', microtime(true));
  3. for($i = 0; $i < 100; $i++)
  4. {
  5.         mysql_connect('localhost', 'root', '');
  6.         mysql_select_db('test');
  7.         mysql_query('SELECT SQL_NO_CACHE * FROM `test` WHERE name LIKE "%asd%"');
  8.         mysql_close();
  9. }
  10. echo round(microtime(true) - START_TIME, 4).' sec';

Время - 13.969 sec.

Итог подведите сами

П.С. более 100 запросов неудалось так как превишал лимит 30 сек на локале


echo round(microtime(true) - START_TIME, 4).' sec.';
21. phphtmlcss - 12 Марта, 2013 - 19:23:51 - перейти к сообщению
esterio пишет:
Итак результаты теста как я обещал

1. делаем структру таблицы
CODE (SQL):
скопировать код в буфер обмена
  1. CREATE TABLE `test` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `name` varchar(255) DEFAULT NULL,
  4.   PRIMARY KEY (`id`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8


2. код заполнения таблицы 100 000 записей
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function randWord()
  3. {
  4.         $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  5.         $count = rand(5, 15);
  6.         $str = '';
  7.         for ($i = 0; $i < $count; $i++)
  8.                 $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
  9.         return $str;
  10. }
  11. mysql_connect('localhost', 'root', '');
  12.  
  13. for($i = 0; $i < 100000; $i++)
  14.         mysql_query('INSERT INTO test SET name="'.randWord().'"');


3. делае стартовый запрос
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT SQL_NO_CACHE * FROM `test` WHERE name LIKE "%asd%"

Время 0.031 sec

Итак тест №1 - один раз откриваем базу
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define('START_TIME', microtime(true));
  3.  
  4. mysql_connect('localhost', 'root', '');
  5.  
  6. for($i = 0; $i < 100; $i++)
  7.         mysql_query('SELECT SQL_NO_CACHE * FROM `test` WHERE name LIKE "%asd%"');
  8.  
  9. echo round(microtime(true) - START_TIME, 4).' sec';


Время - 12.7408 sec

Тест №2
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. define('START_TIME', microtime(true));
  3. for($i = 0; $i < 100; $i++)
  4. {
  5.         mysql_connect('localhost', 'root', '');
  6.         mysql_select_db('test');
  7.         mysql_query('SELECT SQL_NO_CACHE * FROM `test` WHERE name LIKE "%asd%"');
  8.         mysql_close();
  9. }
  10. echo round(microtime(true) - START_TIME, 4).' sec';

Время - 13.969 sec.

Итог подведите сами

П.С. более 100 запросов неудалось так как превишал лимит 30 сек на локале


echo round(microtime(true) - START_TIME, 4).' sec.';
Браво!
22. esterio - 12 Марта, 2013 - 19:25:39 - перейти к сообщению
не надо цитировать весь пост.


Сори не заметил у себя код внизу
23. phphtmlcss - 12 Марта, 2013 - 19:27:24 - перейти к сообщению
sneakquie пишет:
Извиняюсь, если невнимательно читал тему и TC'y ответили.
PHP:
скопировать код в буфер обмена
  1. $dcb = mysql_connect(HOST, USER, PASS, DB) or die("ERROR connected to SERVER");
  2.  
  3. $query = "SELECT * FROM comment";
  4. mysql_query($dcb, $query);

В функции mysql_query() первым аргументом у Вас является указатель, вторым - сам код запроса. Нужно поменять их местами.


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once './config.php';
  3.  
  4.  
  5. $dcb = mysqli_connect(HOST, USER, PASS, DB);
  6. $query = "SELECT * FROM `comment`";
  7. $result = mysqli_query($dcb, $query);
  8. while($row = mysqli_fetch_assoc($result)){
  9. echo $row['comment'];
  10. }
  11. ?>


Не решение было верно, все вот так работает!
Только кодировка не установлена!
24. esterio - 12 Марта, 2013 - 19:30:19 - перейти к сообщению
Ну как хотите я вас переубеждать не стану. Мне ето не надо. Лишь замечу что вы уже под mysqli переписали Радость Радость Радость
25. sneakquie - 12 Марта, 2013 - 19:34:27 - перейти к сообщению
Ну Вы даете. Не решение? А ничего, что в Ваших первых примерах и в первом сообщении использовалась функция mysql_query(), а в последнем сообщении - mysqli_query, а у них сигнатура то разная. В mysqli_query() первым аргументом идет указатель на БД, вторым - запрос, так что мое решение было верным, это уже Вы все перекрутили.
26. phphtmlcss - 12 Марта, 2013 - 19:44:00 - перейти к сообщению
esterio пишет:
Ну как хотите я вас переубеждать не стану. Мне ето не надо. Лишь замечу что вы уже под mysqli переписали Радость Радость Радость

А я против mysqli ни чего против и не имел!
(Добавление)
sneakquie пишет:
Ну Вы даете. Не решение? А ничего, что в Ваших первых примерах и в первом сообщении использовалась функция mysql_query(), а в последнем сообщении - mysqli_query, а у них сигнатура то разная. В mysqli_query() первым аргументом идет указатель на БД, вторым - запрос, так что мое решение было верным, это уже Вы все перекрутили.

А ну если так то спасибо вам!
27. Dark-def - 12 Марта, 2013 - 23:05:01 - перейти к сообщению
Цитата:
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.  

а я то думал, как же к базе подключится... жаль не могу спасибо поставить Недовольство, огорчение Помог человек же! И книги почитать тоже, что бы я без него делал
28. sKaa - 13 Марта, 2013 - 06:27:34 - перейти к сообщению

Весело у вас тут) Весеннее обострение без объяснений ? Наплыв "Данилычей" ?)

Хотя мне и очень смешно, я посоветую, всё же, человеку с ником phphtmlcss, ознакомиться с паттерном "Singletone", и не для саморазвития, поскольку это он бы и без меня мог при желании откопать всё сам, благо гугл работает без перебоев, а с одной единственной целью, чтобы уважаемый, не давал больше глупых советов никому и никогда)

 

Powered by ExBB FM 1.0 RC1