ФорумПрограммированиеПыхнуть хотите?Готовые решения → goDB — библиотека работы с MySQL

goDB — библиотека работы с MySQL

  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 10 февраля 2008 г. 3:49

    Очередная вариация на бесконечную тему библиотек для работы с БД.

    Документация и исходники — http://pyha.ru/go/godb/

    Расширение над MySQLi
    Облегчает интерфейс взаимодействия с БД.
    Никакой дополнительной абстракции над SQL не строит.

    - Упрощенное формирование запроса
    - Упрощенный разбор результата
    - Обработка ошибок на основании исключений
    - Плюс еще несколько полезных фишек
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 16 февраля 2008 г. 4:25, спустя 6 дней 35 минут

    Вопрос по количеству подключений - в mysqli оно всегда одно? Т.е. нужно ли самому делать синглтон или можно не заморачиваться по этому поводу?
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 16 февраля 2008 г. 6:33, спустя 2 часа 7 минут 42 секунды

    Возможно, не совсем точно понял вопрос.

    Объекты, конечно, будут разные, и, даже, по ходу, подключения будут разные, даже для одинаковых параметров. Во всяком случае:

    $db1 = new mysqli('localhost', 'test1', 'test1', 'test1');
    $db2 = new mysqli('localhost', 'test1', 'test1', 'test1');

    var_dump($db1->thread_id === $db2->thread_id); // false
    var_dump($db1 === $db2); // false


    Советую почитать раздел про пространство имен в либе. Может быть это и будет нужный тебе синглтон.
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 16 февраля 2008 г. 7:05, спустя 31 минуту 31 секунду

    Блин, как же я умурился прозевать этот раздел?..
    Спасибо, то что нужно :) А то я везде ставил new и думал, что так задумано…
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 19 февраля 2008 г. 5:56, спустя 2 дня 22 часа 51 минуту

    (1.0.3) Пофиксены пара багов. Спасибо Тимуру
  • Serj

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 29 февраля 2008 г. 0:11, спустя 9 дней 18 часов 14 минут

    Почему не получается выполнить такой запрос, или как его заменить, помогите плз.

    $row4 = $db->query("SELECT ?c,  ?c?, ?c FROM ?t, ?t WHERE ?c=?i AND ?c=?c ORDER BY RAND() LIMIT 7",
    Array("login", "avatar_preview", "friend_id", "users", "friends", "friends.id", $_GET['id'], "users.id", "friends.friend_id"), "assoc");


    И как быть с этой контрукцией while($row4 = mysql_fetch_array($sql3)), чем её заменить?
    joby.kharkov.ua
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 29 февраля 2008 г. 0:33, спустя 22 минуты 16 секунд

    Почему не получается выполнить такой запрос, или как его заменить, помогите плз.

    Сделайте:
    $db->setDebug(true);

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

    И как быть с этой контрукцией while($row4 = mysql_fetch_array($sql3)), чем её заменить?

    Так как вы указали третьим параметром в query() "assoc", то получаете в итоге ассоциативный массив. Можете перебрать его foreach'ем. Причем в таком случае можно вместо "assoc" использовать "iassoc".
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 29 февраля 2008 г. 2:47, спустя 2 часа 13 минут 30 секунд

    Serj,
    var_dump($row4);
    adw/0
  • Serj

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 29 февраля 2008 г. 4:10, спустя 1 час 23 минуты 49 секунд

    Помойму ошибка в `users.id`=`friends.friend_id`. Unknown column 'friends.id'. Должно ведь разбиваться как `users`.`id`=`friends`.`friend_id`?

    Извините, а как работать с var_dump ?
    joby.kharkov.ua
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 29 февраля 2008 г. 4:41, спустя 30 минут 24 секунды

    А да.
    Разбиваться не должно. Либо передавайте в качестве столбца массив (таблица, столбец), либо напрямую вписывайте столбец в SQL-запрос.
    Исключение то генерируется?
  • Serj

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 29 февраля 2008 г. 4:50, спустя 9 минут 9 секунд

    Спасибо! Разбил вот так ?t.?c=?t.?c . Объясните ещё пожалуйста var_dump, как с ней быть?
    joby.kharkov.ua
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 29 февраля 2008 г. 4:54, спустя 4 минуты 24 секунды

    Что такое var_dump написано в документации по ней.
    adword хотел сказать, что с помощью её вы могли бы разобраться в полученной структуре и решить чем же заменять mysql_fetch_array
  • Serj

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 29 февраля 2008 г. 4:56, спустя 1 минуту 29 секунд

    Понял, спасибо.
    joby.kharkov.ua
  • Serj

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 6 марта 2008 г. 23:00, спустя 6 дней 18 часов 3 минуты

    Помогите пожалуйста!
    Вчера тестили сайт, вылетела такая ошибка:

    Fatal error: Uncaught exception 'goDBExceptionConnect' with message 'Host '111.162.7.9' is not allowed to connect to this MySQL server' in /sata1/home/users/lalala/www/www.lalala.org/godb.php:35 Stack trace: #0 /sata1/home/users/lalala/www/www.lalala.org/mysql.php(3): goDB->__construct('db.lalala.co…', 'логин', 'пароль', 'база') #1 /sata1/home/users/lalala/www/www.lalala.org/auth_index.php(4): include('/sata1/home/use…') #2 /sata1/home/users/lalala/www/www.lalala.org/head.php(2): include('/sata1/home/use…') #3 /sata1/home/users/lalala/www/www.lalala.org/lalala.php(2): include('/sata1/home/use…') #4 {main} thrown in /sata1/home/users/lalala/www/www.lalala.org/godb.php on line 35

    Как можно отключить такие сообщения, помойму не очень хорошо, что светится логин пароль к базе?
    joby.kharkov.ua
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 6 марта 2008 г. 23:46, спустя 46 минут 1 секунду

    Serj, почитай раздел документации Сообщения об ошибках и f.a.q - Обработка исключений в php

Пожалуйста, авторизуйтесь, чтобы написать комментарий!