Упростил основной цикл выполнения запроса: 1. Сформировать запрос на основании шаблона и данных 2. Выполнить 3. Получить результат в нужном формате Я это объеденил в один вызов. А проверки и разбор результата свёл к одному аргументу
то есть такая запись $db->query( '...', array( ... ), 'rowassoc' ) проще чем такая $db->query( '...', array( ... ) )->rowAssoc я правильно понял?
Да, по моему извращённому мнению, такая запись проще чем такая. Впрочем, я полностью осознаю, что по вашему мнению может быть иначе, и ничего не вам не навязываю. Также по моему мнению, этот спор не стоит высосанного х.йца.
ути-пути, у птенчика собственное мнение прорезалось х) мы уже такие взрослые и самостоятельные *о* вот только ИДЕ с автокомплитом пользоваться еще не обучены. печальки =(
goDB 1.3.0: - Транзакции - Мультизапросы - Подготовленные выражения - Объекты-ссылки - И много мелочей. Подробности в пресс-релизе. Пролетарии всех стран выбирают goDB. Качать (zip, 31 K)
vasa_c Посмотрел разработку. Интересно, но некоторых элементарных вещей по-прежнему не хватает (или я не нашел)? Например, мне надо добавить запись в таблицу: PHP: <?php $table="users"; $values=array( "username"=>"vasa_c", "usergroupid"=>1, "password"=>"d9433f4aa4c64a06bdec4e987182853c", "email"=>"vasa_c@mail.ru"); Как это сделать в goDB? Я не придумал ничего лучше вставки части запроса (?q): PHP: <?php foreach($values as $field=>$value) $values[$field]="'".addslashes($value)."'"; $fields=implode(",",array_keys($values)); $values=implode(",",$values); $pattern="INSERT INTO ?t (?q) VALUES (?q)"; $data=array($table,$fields,$values); $result=$db->query($pattern,$data); То есть даже с goDB все приходится делать вручную - экранировать, собирать запрос... это же жутко неудобно. Я то же самое делаю одной строкой: PHP: <?php $result=$database->addLine($table,$values);
PHP: $values=array( "username"=>"vasa_c", "usergroupid"=>1, "password"=>"d9433f4aa4c64a06bdec4e987182853c", "email"=>"vasa_c@mail.ru" ); $pattern = 'INSERT INTO ?t SET ?s'; $data = array($table, $values); $db->query($pattern, $data);
vasa_c То есть пользоваться общепринятым синтаксисом для команды INSERT не получится? Только SET вариант? Впрочем, это все равно гораздо лучше, чем то, что я написал выше. Спасибо за ответ.
SET не менее общепринят + он намного нагляднее. Для вставки же списка значений в VALUES есть плейсхолдер ?l (?list), который сработает и с этим массивом, другое дело, что список столбцов придётся всё равно формировать отдельно. Могу сделать и плейсхолдер для списка столбцов, но чтобы тянуть значения для двух плейсхолдеров из одной переменной по-всякому придётся использовать именованные плейсхолдеры.
vasa_c Мне кажется, что для такой популярной операции, как INSERT, надо просто-напросто предусмотреть отдельный метод. Ведь даже с упрощенным синтаксисом каждый раз снова и снова писать 'INSERT INTO ...' - как-то не совсем соответствует понятиям об удобной работе. Ну, можно ведь и так: PHP: <?php array($table, array_keys($values), $values) Хотя это тоже не идеал
метод для инсерт, метод для селект, метод для удаления, метод для COUNT, метод для TRUNCATE, и получится query-builder в итоге
vasa_c нет, получиться абстрация надо goDB - вполне нормальное решение... ты ж видел мою DB, почти то же самое, так вот это можно соединить в маппер, которые будет знать метаданные, тогда получается во первых удобный интерфейс, который каждый может сделать для себя, а во вторых сокрытие наличия обращений к базе данных. Так что не надо нагромождать это точно.
vasa_c Дык goDB - уже query-builder в чистом виде. Просто станет чуть удобнее. Я человек ленивый и не люблю двадцать раз писать одно и то же, даже если это паттерн для запроса INSERT INTO. Костян Это было типа "слава Сталину", чтобы не арестовали?
возьмите Котеровскую dbsimple если так хочется взять хорошую обёртку. и не надо изобретать велосипедов, ога.
Dagdamor Звучит фраза конечно пафосно, но зерно здравого смысла в ней определённо есть... Особенно если учесть что мы имеем дело не с искусством а с техникой...
Наверное следующее: 1. Там обильно и качественно используется конструкция switch 2. В целях поддержки PHP4 там нет такого ужаса, как исключения Так кто же сомневается? Mr.M.I.T. наше всё.