<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии на: Объект Database</title>
	<atom:link href="http://brotkin.ru/2009/02/26/obekt-database/feed/" rel="self" type="application/rss+xml" />
	<link>http://brotkin.ru/2009/02/26/obekt-database/</link>
	<description>ковыряемся в Internet</description>
	<lastBuildDate>Mon, 30 Jan 2012 23:38:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/02/26/obekt-database/comment-page-1/#comment-135</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 02 Mar 2009 08:19:35 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=187#comment-135</guid>
		<description>&lt;code&gt;
$where = array();
// проверяем переменные, причем можно и в цикл это запихнуть
isset($_POST[&#039;category&#039;]) AND $where[&#039;category_id&#039;] = intval($_POST[&#039;category&#039;]);
$this-&gt;db-&gt;where($where)-&gt;get();
&lt;/code&gt;
Возможно, плейсхолдеры тут бы пригодились чтобы избавиться от функций приведения типа, а так вроде очень даже все ничего ;)</description>
		<content:encoded><![CDATA[<p><code><br />
$where = array();<br />
// проверяем переменные, причем можно и в цикл это запихнуть<br />
isset($_POST['category']) AND $where['category_id'] = intval($_POST['category']);<br />
$this->db->where($where)->get();<br />
</code><br />
Возможно, плейсхолдеры тут бы пригодились чтобы избавиться от функций приведения типа, а так вроде очень даже все ничего <img src='http://brotkin.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Slaver</title>
		<link>http://brotkin.ru/2009/02/26/obekt-database/comment-page-1/#comment-134</link>
		<dc:creator>Slaver</dc:creator>
		<pubDate>Mon, 02 Mar 2009 08:12:49 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=187#comment-134</guid>
		<description>В &lt;code&gt;имя_поля=&gt;условие&lt;/code&gt; нельзя сделать нормального исключения, если не перадан какой-нибудь параметр. В DbSimple часть запроса в скобках не будет выполняться, если параметра нет (DBSIMPLE_SKIP). Как сделать аналог этого в в QB, без проверки в if-else до самого запроса?

Так что отказываюсь от в QB исключительно из-за нечитабельности запросов  :mrgreen:</description>
		<content:encoded><![CDATA[<p>В <code>имя_поля=&gt;условие</code> нельзя сделать нормального исключения, если не перадан какой-нибудь параметр. В DbSimple часть запроса в скобках не будет выполняться, если параметра нет (DBSIMPLE_SKIP). Как сделать аналог этого в в QB, без проверки в if-else до самого запроса?</p>
<p>Так что отказываюсь от в QB исключительно из-за нечитабельности запросов  <img src='http://brotkin.ru/wp-includes/images/smilies/icon_mrgreen.gif' alt=':mrgreen:' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/02/26/obekt-database/comment-page-1/#comment-133</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 02 Mar 2009 08:05:43 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=187#comment-133</guid>
		<description>Макроподстановки - штука интересная, но ведь в QB можно сформировать массив вида &lt;em&gt;имя_поля=&gt;условие&lt;/em&gt; и его затолкать в метод &lt;strong&gt;where()&lt;/strong&gt; или &lt;strong&gt;orwhere()&lt;/strong&gt;. По сути те же макроподстановки и получатся. Разве что без плейсхолдеров, но в QB они наверное уже не нужны будут.
Я не критикую DBSimple, слышал о ней множество положительных отзывов, просто интересно, что в ней есть такого хорошего, чтобы отказываться от &quot;родных&quot; механизмов :)</description>
		<content:encoded><![CDATA[<p>Макроподстановки &#8211; штука интересная, но ведь в QB можно сформировать массив вида <em>имя_поля=>условие</em> и его затолкать в метод <strong>where()</strong> или <strong>orwhere()</strong>. По сути те же макроподстановки и получатся. Разве что без плейсхолдеров, но в QB они наверное уже не нужны будут.<br />
Я не критикую DBSimple, слышал о ней множество положительных отзывов, просто интересно, что в ней есть такого хорошего, чтобы отказываться от &#8220;родных&#8221; механизмов <img src='http://brotkin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Slaver</title>
		<link>http://brotkin.ru/2009/02/26/obekt-database/comment-page-1/#comment-132</link>
		<dc:creator>Slaver</dc:creator>
		<pubDate>Mon, 02 Mar 2009 07:56:38 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=187#comment-132</guid>
		<description>Абстракции от БД, действительно, мало. Хотя библиотека и поддерживает MySQL, PostgreSQL и InterBase/FireBird.

Плейсхолдеры — замечательно, но их недостаточно стало, после того, как я познакомился с фигурными скобками :) Это — макроподстановки в запросах, позволяющие динамически генерировать сложные запросы без использования if-else-конструкций в скрипте. Более понятно будет на &lt;a href=&quot;http://dklab.ru/lib/DbSimple/&quot; rel=&quot;nofollow&quot;&gt;примерах&lt;/a&gt;.

Наверное, неправильно это называть абстракцией, это просто возможность писать читабельные запросы. Тем более, имхо :)</description>
		<content:encoded><![CDATA[<p>Абстракции от БД, действительно, мало. Хотя библиотека и поддерживает MySQL, PostgreSQL и InterBase/FireBird.</p>
<p>Плейсхолдеры — замечательно, но их недостаточно стало, после того, как я познакомился с фигурными скобками <img src='http://brotkin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Это — макроподстановки в запросах, позволяющие динамически генерировать сложные запросы без использования if-else-конструкций в скрипте. Более понятно будет на <a href="http://dklab.ru/lib/DbSimple/" rel="nofollow">примерах</a>.</p>
<p>Наверное, неправильно это называть абстракцией, это просто возможность писать читабельные запросы. Тем более, имхо <img src='http://brotkin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/02/26/obekt-database/comment-page-1/#comment-131</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 02 Mar 2009 05:25:11 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=187#comment-131</guid>
		<description>А где ж тут, простите, абстрагирование-то? Если Вы используете &lt;em&gt;DATE_FORMAT&lt;/em&gt; и &lt;em&gt;LIMIT&lt;/em&gt;, то уже привязываетесь к определенному кругу СУБД (подозреваю, что только к MySQL в итоге). А цель &lt;em&gt;Query Builder&lt;/em&gt;&#039;а как раз в работе с СУБД как с неким обобщенным объектом, без специфики.
А подобные запросы и через метод &lt;em&gt;query()&lt;/em&gt; использовать, он плейсхолдеры поддерживает.
PS. А зачем нужны фигурные скобки?</description>
		<content:encoded><![CDATA[<p>А где ж тут, простите, абстрагирование-то? Если Вы используете <em>DATE_FORMAT</em> и <em>LIMIT</em>, то уже привязываетесь к определенному кругу СУБД (подозреваю, что только к MySQL в итоге). А цель <em>Query Builder</em>&#8216;а как раз в работе с СУБД как с неким обобщенным объектом, без специфики.<br />
А подобные запросы и через метод <em>query()</em> использовать, он плейсхолдеры поддерживает.<br />
PS. А зачем нужны фигурные скобки?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Slaver</title>
		<link>http://brotkin.ru/2009/02/26/obekt-database/comment-page-1/#comment-130</link>
		<dc:creator>Slaver</dc:creator>
		<pubDate>Sun, 01 Mar 2009 22:32:27 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=187#comment-130</guid>
		<description>А я всё-таки прикрутил котеровский DbSimple. Пришлось сделать свой Database-контроллер. Конструкции типа:
&lt;code&gt;SELECT *
	FROM `posts`
	WHERE 1=1 { AND `category_id` = ? } { AND `author` = ? } { AND DATE_FORMAT(`posts`.`date`, &quot;%Y%m&quot; ) = ? }
	LIMIT ?d, ?d
&lt;/code&gt;
меня безумно радуют и помогают максимально абстрагировать создание запросов :)</description>
		<content:encoded><![CDATA[<p>А я всё-таки прикрутил котеровский DbSimple. Пришлось сделать свой Database-контроллер. Конструкции типа:<br />
<code>SELECT *<br />
	FROM `posts`<br />
	WHERE 1=1 { AND `category_id` = ? } { AND `author` = ? } { AND DATE_FORMAT(`posts`.`date`, "%Y%m" ) = ? }<br />
	LIMIT ?d, ?d<br />
</code><br />
меня безумно радуют и помогают максимально абстрагировать создание запросов <img src='http://brotkin.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

