<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sebastian Heinisch &#187; MySQL</title>
	<atom:link href="http://www.sebastian-heinisch.de/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sebastian-heinisch.de</link>
	<description></description>
	<lastBuildDate>Fri, 03 Feb 2012 16:50:52 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MySQL Update mit Symfony</title>
		<link>http://www.sebastian-heinisch.de/update-symfony/2008-06-18/</link>
		<comments>http://www.sebastian-heinisch.de/update-symfony/2008-06-18/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 19:26:12 +0000</pubDate>
		<dc:creator>Sebastian Heinisch</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.sebastian-heinisch.de/?p=96</guid>
		<description><![CDATA[Es gibt mehrere M&#246;glichkeiten mit dem PHP Framework Symfony mehrere Zeilen einer Datenbank (in unserem Fall MySQL) zu updaten. Nehmen wir den Befehl: UPDATE user SET active=0 WHERE password=1234 Die erste (und offensichtliche) M&#246;glichkeit lautet, alle User mit dem Passwort &#8230; <a href="http://www.sebastian-heinisch.de/update-symfony/2008-06-18/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Es gibt mehrere M&#246;glichkeiten mit dem PHP Framework <a href="http://www.symfony-project.org/" target="_self">Symfony</a> mehrere Zeilen einer Datenbank (in unserem Fall MySQL) zu updaten.</p>
<p>Nehmen wir den Befehl:</p>
<p><em>UPDATE user SET active=0 WHERE password=1234</em></p>
<p>Die erste (und offensichtliche) M&#246;glichkeit lautet, alle User mit dem Passwort &#8217;1234&#8242; mithilfe eines <em>Criteria</em> auszulesen &#8211; um dann mittels einer <em>foreach</em> Schleife einzelnt die Datens&#228;tze durchlaufen und upzudaten.</p>
<p>Allerdings verbraucht diese M&#246;glichkeit unn&#246;tig viel Resourcen, weil X+1 SQL-Querys ausgef&#252;hrt werden.</p>
<p>Um dieses zu vermeiden, gibt es einen sch&#246;neren Weg &#252;ber die BasePeer Class von Symfony:</p>
<p><em>$con = Propel::getConnection();</em></p>
<p><em>// &#8212; Select Anweisung (steht also im WHERE Teil)<br />
$c_select = new Criteria();<br />
$c_select-&gt;add(UserPeer::ACTIVE, 0);</em></p>
<p><em>// &#8212; Eigentliche Update Anweisung<br />
$c_update = new Criteria();<br />
$c_update-&gt;add(UserPeer::PASSWORD, 1234);</em></p>
<p><em>BasePeer::doUpdate($c_select, $c_update, $con);</em></p>
<p>Mittels diesen kleinen Symfony Snippets ist es also M&#246;glich, schnell mehrere Zeilen in einer Tabelle Resourcen schonend  zu updaten.</p>
<p>Im oberen Beispiel wird n&#228;mlich genau 1 Query ausgef&#252;hrt. Also haben wir eine Erspannis von X MySQL- Querys.</p>
 <p><a href="http://www.sebastian-heinisch.de/?flattrss_redirect&amp;id=96&amp;md5=683c752db721c3a075909061a2d82b91" title="Flattr" target="_blank"><img src="http://www.sebastian-heinisch.de/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.sebastian-heinisch.de/update-symfony/2008-06-18/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<atom:link rel="payment" href="http://www.sebastian-heinisch.de/?flattrss_redirect&amp;id=96&amp;md5=683c752db721c3a075909061a2d82b91" type="text/html" />"
	</item>
	</channel>
</rss>

