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 :: Версия для печати :: Класс для работы с БД
Форумы портала PHP.SU » » Вопросы новичков » Класс для работы с БД

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

1. froosty - 13 Февраля, 2012 - 23:56:47 - перейти к сообщению
Всем доброго времени суток. Посоветуйте, пожалуйста, хороший класс для работы с БД MySQL и поддержкой кэширования результатов. Заранее спасибо.
2. OrmaJever - 14 Февраля, 2012 - 00:00:52 - перейти к сообщению
mysqli
3. sKaa - 14 Февраля, 2012 - 00:04:54 - перейти к сообщению
OrmaJever разве mysqli способен кэшировать?
froosty PDO
(Добавление)
Хотя были времена я для обычного mysql писал скрипт кэширования запросов содержащих SELECT с помощью fwrite и serialize
4. Okula - 14 Февраля, 2012 - 00:26:52 - перейти к сообщению
sKaa пишет:
OrmaJever разве mysqli способен кэшировать?

Представь себе mysqli имеет возможность создавать буферизованные и не буферизованные запросы.
По умолчанию они все буферизованы. Для создания не буферизованного запроса нужно задать второй аргумент метода query()
PHP:
скопировать код в буфер обмена
  1. $db = new mysqli(...);
  2. $result = $db->query("SELECT * FROM `table`", MYSQLI_USE_RESULT);
  3. while($inf = $result->fetch_row()) {
  4.     echo $inf[0].'<br />';
  5. }
  6. $result->free();
  7. $db->close()
5. sKaa - 14 Февраля, 2012 - 00:29:29 - перейти к сообщению
Okula, представил - всё равно печаль )))
6. froosty - 14 Февраля, 2012 - 00:32:34 - перейти к сообщению
sKaa, подскажи плз, если PDO юзать, там кэширование по умолчанию идёт, или его нужно включать/что-то дописывать?
7. sKaa - 14 Февраля, 2012 - 00:38:22 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $db = new PDO('mysql:host=localhost;dbname=<SOMEDB>', '<USERNAME>', 'PASSWORD');
  2. $db->beginTransaction(); // Начало транзакции


http://www.php.net/manual/en/class.pdo.php
8. caballero - 14 Февраля, 2012 - 01:49:02 - перейти к сообщению
Цитата:
если PDO юзать, там кэширование по умолчанию идёт, или его нужно включать/что-то дописывать?

с кешированием данных неплохо справляется и сама Mysql
не пудри себе мозги.
9. DlTA - 14 Февраля, 2012 - 02:56:20 - перейти к сообщению
caballero пишет:
с кешированием данных неплохо справляется и сама Mysql
не пудри себе мозги.

кешируется только последний запрос
10. tuareg - 14 Февраля, 2012 - 07:33:19 - перейти к сообщению
DlTA пишет:
кешируется только последний запрос

Пока хватает памяти кэшируются все запросы SELECT(за исключение ряда запросов(NOW(),
CURRENT_DATE()).
11. Мелкий - 14 Февраля, 2012 - 08:50:59 - перейти к сообщению
Позанимаюсь опять подведением итогов:
кэшируются все select'ы на стороне MySQL, кроме некоторых условий, изложенных там: http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]e-operation[dot]html
при использовании препарированных запростов (что mysqli, что PDO, драйвер доступа всё равно один и тот же) - кэшируется и план запроса.
Кэшируются сами страницы данных в памяти.

 

Powered by ExBB FM 1.0 RC1