<?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>iTeamWork &#187; PHP</title>
	<atom:link href="http://iteamwork.de/category/prog/php/feed" rel="self" type="application/rss+xml" />
	<link>http://iteamwork.de</link>
	<description>Coding Tipps</description>
	<lastBuildDate>Thu, 06 Oct 2011 17:38:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
		<item>
		<title>[PHP] Prüfen ob Interface implementiert wurde</title>
		<link>http://iteamwork.de/php-prufen-ob-interface-implementiert-wurde.html</link>
		<comments>http://iteamwork.de/php-prufen-ob-interface-implementiert-wurde.html#comments</comments>
		<pubDate>Wed, 31 Mar 2010 23:29:04 +0000</pubDate>
		<dc:creator>H.Grafe</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[implementiert]]></category>
		<category><![CDATA[instanceof]]></category>
		<category><![CDATA[interface]]></category>

		<guid isPermaLink="false">http://iteamwork.de/?p=74</guid>
		<description><![CDATA[Wie kann man überprüfen ob eine Klasse ein Interface implementiert?]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fiteamwork.de%2Fphp-prufen-ob-interface-implementiert-wurde.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fiteamwork.de%2Fphp-prufen-ob-interface-implementiert-wurde.html&amp;source=okriz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Vor kurzem habe ich gezeigt wie man ein Interface erstellt und dieses Implementiert. Nun ist es durchaus von Interesse zu prüfen ob eine Klasse dieses Interface implementiert hat. Dies geht wie folgt:<br />
<span id="more-74"></span></p>
<blockquote><p>$p=new klasseMitInterface($db);<br />
if ($p instanceof  Plugin2)<br />
{<br />
//Interface implementiert<br />
}<br />
else<br />
{<br />
//leider nein<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://iteamwork.de/php-prufen-ob-interface-implementiert-wurde.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] Interfaces implementieren</title>
		<link>http://iteamwork.de/php-interfaces-implementieren.html</link>
		<comments>http://iteamwork.de/php-interfaces-implementieren.html#comments</comments>
		<pubDate>Fri, 19 Mar 2010 23:26:02 +0000</pubDate>
		<dc:creator>H.Grafe</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[implementieren]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[Klasse]]></category>
		<category><![CDATA[Vererbung]]></category>

		<guid isPermaLink="false">http://iteamwork.de/?p=67</guid>
		<description><![CDATA[Was sind interfaces und wie benutzt man sie?]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fiteamwork.de%2Fphp-interfaces-implementieren.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fiteamwork.de%2Fphp-interfaces-implementieren.html&amp;source=okriz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Interfaces definieren eine Schnittstelle nach Außen. Durch Sie ist sichergestellt das bestimmte Funktionen vorhanden sind und exakt so aussehen wie sie definiert wurden.</p>
<p>In PHP wird ein Interface wie folgt definiert:</p>
<blockquote><p>interface Plugin<br />
{<br />
public function __construct($db);<br />
public function start();<br />
}</p></blockquote>
<p>Hier wird definiert das die Klasse welches das Interface implementiert einen Konstruktor haben muss der als Parameter eine Variable nimmt. Außerdem muss eine Methode vorhanden sein die start heißt und keine Parameter benötigt.</p>
<p>Implementiert wird das ganze wie folgt:</p>
<p><span id="more-67"></span></p>
<blockquote><p>class Ueberweisung implements Plugin<br />
{</p>
<p>function __construct($db)<br />
{<br />
//&#8230;<br />
}<br />
function start()<br />
{<br />
//&#8230;<br />
}<br />
}</p></blockquote>
<p>Nur wenn alle Funktionen implemtiert wirden funktioniert dies. Ansonsten gibt der PHP Interpretor eine Error Meldung.</p>
<p>Es ist auch möglich das ein Interface von einem anderen erbt.</p>
<blockquote><p>interface Plugin2 extends Plugin<br />
{<br />
public function machwas();<br />
}</p></blockquote>
<p>Eine Klasse die jetzt Plugin2 implementiert muss nun alle Methoden von Plugin und Plugin2 bereitstellen.</p>
]]></content:encoded>
			<wfw:commentRss>http://iteamwork.de/php-interfaces-implementieren.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] Javascript und CSS Dateien komprimieren</title>
		<link>http://iteamwork.de/javascript-und-css-dateien-komprimieren.html</link>
		<comments>http://iteamwork.de/javascript-und-css-dateien-komprimieren.html#comments</comments>
		<pubDate>Tue, 05 Aug 2008 10:44:39 +0000</pubDate>
		<dc:creator>H.Grafe</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Snippets]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[komprimieren]]></category>
		<category><![CDATA[optimieren]]></category>
		<category><![CDATA[platz sparen]]></category>
		<category><![CDATA[stylesheets]]></category>
		<category><![CDATA[verkleinern]]></category>

		<guid isPermaLink="false">http://iteamwork.de/?p=20</guid>
		<description><![CDATA[Relativ viel Performance kostet es, mehrere Javascript und/oder Stylesheet Dateien einzubinden. Zwar geht die Abarbeitung relativ fix dank keep-alive aber dennoch kostet es Zeit. Bestimmte Javascript Bibiotheken bestehen ja schonmal locker aus 10 Dateien. Daher kann es sinnvoll sein, mehrere Dateien in einer Zusammenzufassen. Weiterhin ist so die Möglichkeit gegeben, evtl noch etwas nachzubearbeiten um [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fiteamwork.de%2Fjavascript-und-css-dateien-komprimieren.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fiteamwork.de%2Fjavascript-und-css-dateien-komprimieren.html&amp;source=okriz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Relativ viel Performance kostet es, mehrere Javascript und/oder Stylesheet Dateien einzubinden. Zwar geht die Abarbeitung relativ fix dank keep-alive aber dennoch kostet es Zeit. Bestimmte Javascript Bibiotheken bestehen ja schonmal locker aus 10 Dateien.</p>
<p>Daher kann es sinnvoll sein, mehrere Dateien in einer Zusammenzufassen.</p>
<p>Weiterhin ist so die Möglichkeit gegeben, evtl noch etwas nachzubearbeiten um weitere Dateigröße einzusparen.</p>
<p>Besonders User mit langsammen Verbindungen würden dies dankbar annehmen.</p>
<p><span id="more-20"></span></p>
<p>Nehmen wir also an, wir nutzen folgende beiden Dateien:</p>
<blockquote><p>&lt;script src=&#8221;script/script1.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;<br />
&lt;script src=&#8221;script/script2.js&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</p></blockquote>
<p>dann ersetzen wir das durch:</p>
<blockquote><p>&lt;script src=&#8221;javascript.php&#8221; type=&#8221;text/javascript&#8221;&gt;&lt;/script&gt;</p></blockquote>
<p>Dieses müssen wir dann nur noch wie folgt anlegen:</p>
<blockquote><p>&lt;?php<br />
header(‘Content-type: application/javascript’); //Typ setzen<br />
//Dateien ausgeben<br />
require_once(’script/script1.js’);<br />
require_once(’script/script2.js’);<br />
?&gt;</p></blockquote>
<p>Das wars auch schon. Nun werden beide Dateien in einer ausgegeben. Dabei muss lediglich drauf geachtet werden das alles mit einem Semikolon abgeschlossen wird (auch die letzte Zeile der einzelnen Dateien!)</p>
<p>Der obrige Code kann noch weiter optimiert werden. Zuerst einmal könnten wir dem Browser sagen, das er die Script Datei Cachen soll, so muss sie lediglich einmal übertragen werden:</p>
<blockquote><p>header (&#8220;cache-control: must-revalidate; max-age: 2592000&#8243;);<br />
header (&#8220;expires: &#8221; . gmdate (&#8220;D, d M Y H:i:s&#8221;, time() + 2592000) . &#8221; GMT&#8221;);</p></blockquote>
<p>zweitens:<br />
es könnten alle Zeilenumbrüche entfernt , kommentare gefiltert und doppelte Leerzeichen durch einzelne ersetzt werden. Bei Dateien mit mehreren (tausend) Zeilen lässt sich so nochmal (ordentlich) Platz gespart werden:</p>
<blockquote><p>function verkleiner($data) {<br />
// Kommentare entfernen<br />
$data = preg_replace(‘!/\*[^*]*\*+([^/][^*]*\*+)*/!’, ”, $data);<br />
// Zeilenumbruch und Tab entfernen<br />
$data = str_replace(array(&#8220;\r\n&#8221;, &#8220;\r&#8221;, &#8220;\n&#8221;, &#8220;\t&#8221;), ”, $data);<br />
//Doppelte Leerzeichen entfernen<br />
$data = preg_replace(‘/\s\s+/’, ‘ ‘, $data);<br />
return $data;<br />
}</p></blockquote>
<p>und drittens können wir zusätzlich noch evtl verfügbare Komprimierungstechniken benutzen:</p>
<blockquote><p>header(‘Content-Length: ‘ . strlen($data));<br />
if (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘x-gzip’) !== false) {<br />
header(&#8220;Content-encoding:x-gzip&#8221;);<br />
$data = gzencode($data);<br />
}<br />
elseif (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘gzip’) !== false) {<br />
header(&#8220;Content-encoding:gzip&#8221;);<br />
$data = gzencode($data);<br />
}<br />
elseif (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘deflate’) !== false) {<br />
header(&#8220;Content-encoding:deflate&#8221;);<br />
$data = gzdeflate($data);<br />
}</p></blockquote>
<p>Somit sieht die verkleiner funktion insgesammt wie folgt aus:</p>
<blockquote><p>function verkleiner($data) {<br />
// Kommentare entfernen<br />
$data = preg_replace(‘!/\*[^*]*\*+([^/][^*]*\*+)*/!’, ”, $data);<br />
// Zeilenumbruch und Tab entfernen<br />
$data = str_replace(array(&#8220;\r\n&#8221;, &#8220;\r&#8221;, &#8220;\n&#8221;, &#8220;\t&#8221;), ”, $data);<br />
//Doppelte Leerzeichen entfernen<br />
$data = preg_replace(‘/\s\s+/’, ‘ ‘, $data);<br />
header(‘Content-Length: ‘ . strlen($data));<br />
if (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘x-gzip’) !== false) {<br />
header(&#8220;Content-encoding:x-gzip&#8221;);<br />
$data = gzencode($data);<br />
}<br />
elseif (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘gzip’) !== false) {<br />
header(&#8220;Content-encoding:gzip&#8221;);<br />
$data = gzencode($data);<br />
}<br />
elseif (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘deflate’) !== false) {<br />
header(&#8220;Content-encoding:deflate&#8221;);<br />
$data = gzdeflate($data);<br />
}<br />
return $data;<br />
}</p></blockquote>
<p>Jetzt müssen wir nur noch die Javascript Dateien anders einlesen so das wir sie bearbeiten können und das ganze sieht wie folgt aus:</p>
<blockquote><p>&lt;?php<br />
function verkleiner($data) {<br />
// Kommentare entfernen<br />
$data = preg_replace(‘!/\*[^*]*\*+([^/][^*]*\*+)*/!’, ”, $data);<br />
// Zeilenumbruch und Tab entfernen<br />
$data = str_replace(array(&#8220;\r\n&#8221;, &#8220;\r&#8221;, &#8220;\n&#8221;, &#8220;\t&#8221;), ”, $data);<br />
//Doppelte Leerzeichen entfernen<br />
$data = preg_replace(‘/\s\s+/’, ‘ ‘, $data);<br />
header(‘Content-Length: ‘ . strlen($data));<br />
if (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘x-gzip’) !== false) {<br />
header(&#8220;Content-encoding:x-gzip&#8221;);<br />
$data = gzencode($data);<br />
}<br />
elseif (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘gzip’) !== false) {<br />
header(&#8220;Content-encoding:gzip&#8221;);<br />
$data = gzencode($data);<br />
}<br />
elseif (stripos($_SERVER["HTTP_ACCEPT_ENCODING"],‘deflate’) !== false) {<br />
header(&#8220;Content-encoding:deflate&#8221;);<br />
$data = gzdeflate($data);<br />
}<br />
return $data;<br />
}<br />
header(‘Content-type: application/javascript’); //Typ setzen<br />
header (&#8220;cache-control: must-revalidate; max-age: 2592000&#8243;); //Caching<br />
header (&#8220;expires: &#8221; . gmdate (&#8220;D, d M Y H:i:s&#8221;, time() + 2592000) . &#8221; GMT&#8221;);<br />
$text=file_get_contents(’script/script1.js’);<br />
$text.=file_get_contents(’script/script2.js’);<br />
echo verkleiner($text);<br />
?&gt;</p></blockquote>
<p>Dies funktioniert natürlich auch mit CSS Dateien. HTML Seiten sollte man so nicht ausliefern da die Formatierung für bestimmte Elemente (z.B. pre) zerstört werden würde.<br />
Ich weise allerdings nochmal darauf hin, das die Javascript Dateien sauber geschrieben sein müssen und  auch die letzte Klasse in einer Datei mit einem Semikolon beendet werden muss!</p>
]]></content:encoded>
			<wfw:commentRss>http://iteamwork.de/javascript-und-css-dateien-komprimieren.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] Generator Funktion</title>
		<link>http://iteamwork.de/php-generator-funktion.html</link>
		<comments>http://iteamwork.de/php-generator-funktion.html#comments</comments>
		<pubDate>Tue, 29 Jul 2008 18:05:53 +0000</pubDate>
		<dc:creator>O.Kriz</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Snippets]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[gutschein]]></category>
		<category><![CDATA[passwort]]></category>
		<category><![CDATA[rand()]]></category>
		<category><![CDATA[random]]></category>
		<category><![CDATA[srand()]]></category>
		<category><![CDATA[zufall]]></category>

		<guid isPermaLink="false">http://iteamwork.de/?p=19</guid>
		<description><![CDATA[Hier eine praktische Generatorfunktion für Gutscheincodes, Passwörter etc. function generator($laenge) { //Generator für Passwörter Gutscheine etc! $wert=&#8221;"; $generator_zeichen=&#8217;abcdefghijklmnopqrstuvwxyz&#8217;; $generator_zeichen.=&#8217;ABCDEFGHIJKLMNOPQRSTUVWXYZ&#8217;; $generator_zeichen.=&#8217;0123456789&#8242;; for($a=0; $a&#60;=$laenge-1; $a++) { srand((double)microtime()*1000000); $id = rand (0,sizeof($generator_zeichen)-1); $wert=$wert.$generator_zeichen[$id]; } return $wert; }]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fiteamwork.de%2Fphp-generator-funktion.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fiteamwork.de%2Fphp-generator-funktion.html&amp;source=okriz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Hier eine praktische Generatorfunktion für Gutscheincodes, Passwörter etc.</p>
<p><span id="more-19"></span></p>
<blockquote><p>function generator($laenge)<br />
{<br />
//Generator für Passwörter Gutscheine etc!<br />
$wert=&#8221;";<br />
$generator_zeichen=&#8217;abcdefghijklmnopqrstuvwxyz&#8217;;<br />
$generator_zeichen.=&#8217;ABCDEFGHIJKLMNOPQRSTUVWXYZ&#8217;;<br />
$generator_zeichen.=&#8217;0123456789&#8242;;</p>
<p>for($a=0; $a&lt;=$laenge-1; $a++)<br />
{<br />
srand((double)microtime()*1000000);<br />
$id = rand (0,sizeof($generator_zeichen)-1);<br />
$wert=$wert.$generator_zeichen[$id];<br />
}<br />
return $wert;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://iteamwork.de/php-generator-funktion.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[PHP] E-Mail Adresse verifizieren</title>
		<link>http://iteamwork.de/e-mail-adresse-verifizieren.html</link>
		<comments>http://iteamwork.de/e-mail-adresse-verifizieren.html#comments</comments>
		<pubDate>Sun, 08 Jun 2008 12:25:00 +0000</pubDate>
		<dc:creator>H.Grafe</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Snippets]]></category>
		<category><![CDATA[adresse]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[regular expressions]]></category>
		<category><![CDATA[reguläre ausdrücke]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[verifizieren]]></category>

		<guid isPermaLink="false">http://iteamwork.de/e-mail-adresse-verifizieren.html</guid>
		<description><![CDATA[Oft steht man vor dem Problem, E-Mail Adressen zu verifizieren. Dazu kann man gut folgenden Code benutzen: $testmail=split&#40;&#34;@&#34;, $email&#41;; if &#40;!eregi&#40;&#34;^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}$&#34;, $email&#41; &#124;&#124; !getmxrr&#40;$testmail&#91;1&#93;, $mxhosts&#41;&#41; &#123; //Fehler &#125;]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fiteamwork.de%2Fe-mail-adresse-verifizieren.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fiteamwork.de%2Fe-mail-adresse-verifizieren.html&amp;source=okriz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Oft steht man vor dem Problem, E-Mail Adressen zu verifizieren.</p>
<p>Dazu kann man gut folgenden Code benutzen:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$testmail</span><span class="sy0">=</span><a href="http://www.php.net/split"><span class="kw3">split</span></a><span class="br0">&#40;</span><span class="st0">&quot;@&quot;</span><span class="sy0">,</span> <span class="re0">$email</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/eregi"><span class="kw3">eregi</span></a><span class="br0">&#40;</span><span class="st0">&quot;^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}$&quot;</span><span class="sy0">,</span> <span class="re0">$email</span><span class="br0">&#41;</span> <span class="sy0">||</span> <span class="sy0">!</span><a href="http://www.php.net/getmxrr"><span class="kw3">getmxrr</span></a><span class="br0">&#40;</span><span class="re0">$testmail</span><span class="br0">&#91;</span>1<span class="br0">&#93;</span><span class="sy0">,</span> <span class="re0">$mxhosts</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Fehler</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://iteamwork.de/e-mail-adresse-verifizieren.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>[PHP] Schleifen im Performance Vergleich</title>
		<link>http://iteamwork.de/schleifen-vergleich.html</link>
		<comments>http://iteamwork.de/schleifen-vergleich.html#comments</comments>
		<pubDate>Wed, 04 Jun 2008 21:50:02 +0000</pubDate>
		<dc:creator>H.Grafe</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[do]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[schleifen]]></category>
		<category><![CDATA[vergleich]]></category>
		<category><![CDATA[while]]></category>

		<guid isPermaLink="false">http://iteamwork.de/schleifen-vergleich.html</guid>
		<description><![CDATA[Es gibt in PHP ja mehrere Schleifen. For, While, DoWhile und Foreach. Doch welche von diesen ist eigentlich am Perfomantesten wenn es darum geht einfach nur X Schleifendurchläufe zu erzeugen? Zuerst einmal muss erwähnt werden, das alle Schleifentypen natürlich ihre Berechtigung haben. Davon unabhängig prüfen wir einfach mal, welche am schnellsten X ( in unserem [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fiteamwork.de%2Fschleifen-vergleich.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fiteamwork.de%2Fschleifen-vergleich.html&amp;source=okriz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">Es gibt in PHP ja mehrere Schleifen. For, While, DoWhile und Foreach. Doch welche von diesen ist eigentlich am Perfomantesten wenn es darum geht einfach nur X Schleifendurchläufe zu erzeugen?</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
<p><span id="more-12"></span></p>
<p>Zuerst einmal muss erwähnt werden, das alle Schleifentypen natürlich ihre Berechtigung haben. Davon unabhängig prüfen wir einfach mal, welche am schnellsten X ( in unserem Fall 10.000.000) Durchläufe abgewickelt hat.</p>
<table border="1" width="500">
<tbody>
<tr>
<td></td>
<td>Server 1</td>
<td>Server 2</td>
</tr>
<tr>
<td>For</td>
<td>5,41 s</td>
<td>2,92 s</td>
</tr>
<tr>
<td>While</td>
<td>6,60 s</td>
<td>1,61 s</td>
</tr>
<tr>
<td>Do While</td>
<td>6,20 s</td>
<td>1,51</td>
</tr>
<tr>
<td>For Each</td>
<td>*</td>
<td>*</td>
</tr>
</tbody>
</table>
<p><span style="FONT-SIZE: 10px">Mittelwerte aus 5 Messungen; * = Test nicht möglich da nicht genug Speicher für ein Array mit 10000000 Elementen vorhanden war.</span></p>
<p><span style="FONT-SIZE: 14px">Wie man erkennt, kann man keine klare Aussage treffen welche Schleife am besten geeignet ist. Wie schon im vorherigen Test vom <a title="Pre-Inkrement gegen Post-Inkrement" href="http://iteamwork.de/preinkrement_gegen_postinkrement.html">Post und Preinkrement</a> scheint dies vom Server an sich abhängig zu sein.</span></p>
<p><span style="FONT-SIZE: 14px">Folgendes Script wurde verwendet:</span></p>
<blockquote><p>&lt;?php <br />
define(&#8220;ROUNDS&#8221;, 10000000);<br />
$i=0;</p>
<p>$start1 = microtime(true);<br />
for ($i=0; $i&lt;ROUNDS; $i++);<br />
$end1 = microtime(true);<br />
$i=0;</p>
<p>$start2 = microtime(true);<br />
while ($i&lt;ROUNDS) $i++;<br />
$end2 = microtime(true);<br />
$i=0;</p>
<p>$start3 = microtime(true);<br />
do {<br />
$i++;<br />
}while($i&lt;ROUNDS);<br />
$end3 = microtime(true);</p>
<p>echo &#8220;for: &#8220;.round($end1 &#8211; $start1, 3).&#8221; Sekunden\n&#8221;;<br />
echo &#8220;while: &#8220;.round($end2 &#8211; $start2, 3).&#8221; Sekunden\n&#8221;;<br />
echo &#8220;dowhile: &#8220;.round($end3 &#8211; $start3, 3).&#8221; Sekunden\n&#8221;; <br />
?&gt;<br />
<blockquote>
]]></content:encoded>
			<wfw:commentRss>http://iteamwork.de/schleifen-vergleich.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] Pre-Inkrement gegen Post-Inkrement (Performance Vergleich)</title>
		<link>http://iteamwork.de/preinkrement_gegen_postinkrement.html</link>
		<comments>http://iteamwork.de/preinkrement_gegen_postinkrement.html#comments</comments>
		<pubDate>Sat, 31 May 2008 12:45:53 +0000</pubDate>
		<dc:creator>H.Grafe</dc:creator>
				<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[postdekrement]]></category>
		<category><![CDATA[postinkrement]]></category>
		<category><![CDATA[predekrement]]></category>
		<category><![CDATA[preinkrement]]></category>

		<guid isPermaLink="false">http://iteamwork.de/?p=11</guid>
		<description><![CDATA[In diversen Blog's ist zu lesen, das $i++ bedeutend schneller ist als ++$i. In henug anderen ist zu lesen dass es genau andersherum ist. Grund genug, dieses selbst einmal auszutesten.]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fiteamwork.de%2Fpreinkrement_gegen_postinkrement.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fiteamwork.de%2Fpreinkrement_gegen_postinkrement.html&amp;source=okriz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>In diversen Blog&#8217;s ist zu lesen, das $i++ bedeutend schneller ist als ++$i. In genug anderen ist zu lesen dass es genau andersherum ist. Grund genug, dieses selbst einmal auszutesten.<br />
<span id="more-11"></span><br />
Dazu wurde folgendes Skript benutzt:</p>
<blockquote><p>$start1 = microtime(true);<br />
while ($i++&lt;$rounds);<br />
$end1 = microtime(true);</p>
<p>$i=0;</p>
<p>$start2 = microtime(true);<br />
while (++$i&lt;$rounds);<br />
$end2 = microtime(true);</p></blockquote>
<p>Wobei die Anzahl der Erhöhungen sowohl mit 10.000.000 als auch mit 100.000.000 Durchläufen getestet wurde. Um ein vernünftiges Ergebnis zu erzielen haben wir den Test auch gleich auf drei Servern durchgeführt.</p>
<p>Und hier ist da Ergebnis:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="102" valign="top"></td>
<td width="102" valign="top">Server 1 10.000.000 Durchläufe</td>
<td width="102" valign="top">Server 1 100.000.000 Durchläufe</td>
<td width="102" valign="top">Server 2 10.000.000 Durchläufe</td>
<td width="102" valign="top">Server 3 10.000.000 Durchläufe</td>
<td width="102" valign="top">Server 3 100.000.000 Durchläufe</td>
</tr>
<tr>
<td width="102" valign="top">$i++</td>
<td width="102" valign="top">2,205 s</td>
<td width="102" valign="top">20,081 s</td>
<td width="102" valign="top">2,461 s</td>
<td width="102" valign="top">1,708 s</td>
<td width="102" valign="top">9,444 s</td>
</tr>
<tr>
<td width="102" valign="top">++$i</td>
<td width="102" valign="top">2,549 s</td>
<td width="102" valign="top">27,444 s</td>
<td width="102" valign="top">1,250 s</td>
<td width="102" valign="top">0,904 s</td>
<td width="102" valign="top">9,002 s</td>
</tr>
</tbody>
</table>
<p>(Mittelwerte aus jeweils 3 Testläufen) Getestet wurde auf jedem Server mit der gleichen PHP Version.</p>
<p>Wie man erkennt, ist $i++ schneller. ++$i aber auch. Man kann also keine allgemeine Aussage darüber treffen, welches die schnellere Variante ist.</p>
<p>Dies <span style="text-decoration: underline;">könnte</span> daran liegen, dass die Compiler den Source Code unterschiedlich optimieren.</p>
<p>In einigen anderen Blogs wird noch darauf hingewiesen das $i&minus;&minus; bzw &minus;&minus;$i schneller bearbeitet wird. Dies haben wir mit folgendem Script ebenfalls gleich getestet:</p>
<blockquote><p>$i=$rounds;<br />
$start3 = microtime(true);<br />
while ($i&minus;&minus;&gt;0);<br />
$end3 = microtime(true);</p>
<p>$i=$rounds;</p>
<p>$start4 = microtime(true);<br />
while (&minus;&minus;$i&gt;0);<br />
$end4 = microtime(true);</p></blockquote>
<p>Ergebnis:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="102" valign="top"></td>
<td width="102" valign="top">Server 1 10.000.000 Durchläufe</td>
<td width="102" valign="top">Server 1 100.000.000 Durchläufe</td>
<td width="102" valign="top">Server 2 10.000.000 Durchläufe</td>
<td width="102" valign="top">Server 3 10.000.000 Durchläufe</td>
<td width="102" valign="top">Server 3 100.000.000 Durchläufe</td>
</tr>
<tr>
<td width="102" valign="top">$i&minus;&minus;</td>
<td width="102" valign="top">2,325 s</td>
<td width="102" valign="top">23,052 s</td>
<td width="102" valign="top">1,047 s</td>
<td width="102" valign="top">0,830 s</td>
<td width="102" valign="top">8,382 s</td>
</tr>
<tr>
<td width="102" valign="top">&minus;&minus;$i</td>
<td width="102" valign="top">2,159 s</td>
<td width="102" valign="top">24,776 s</td>
<td width="102" valign="top">1,179 s</td>
<td width="102" valign="top">0,900 s</td>
<td width="102" valign="top">8,987 s</td>
</tr>
</tbody>
</table>
<p>(Mittelwerte aus jeweils 3 Testläufen) Getestet wurde auf jedem Server mit der gleichen PHP Version.</p>
<p>Tatsächlich ist die Dekrement Variante schneller als die Inkrement Variante.</p>
<p>Hier noch einmal das ganze Skript:</p>
<blockquote><p>&lt;?php<br />
$rounds = 100000000;<br />
$i=0;</p>
<p>$start1 = microtime(true);<br />
while ($i++&lt;$rounds);<br />
$end1 = microtime(true);</p>
<p>$i=0;</p>
<p>$start2 = microtime(true);<br />
while (++$i&lt;$rounds);<br />
$end2 = microtime(true);</p>
<p>$i=$rounds;</p>
<p>$start3 = microtime(true);<br />
while ($i&minus;&minus;&gt;0);<br />
$end3 = microtime(true);</p>
<p>$i=$rounds;</p>
<p>$start4 = microtime(true);<br />
while (&minus;&minus;$i&gt;0);<br />
$end4 = microtime(true);</p>
<p>echo &#8220;\$i++: &#8220;.round($end1 &#8211; $start1, 3).&#8221;Sekunden\n&#8221;;<br />
echo &#8220;++\$i: &#8220;.round($end2 &#8211; $start2, 3).&#8221;Sekunden\n&#8221;;<br />
echo &#8220;\$i&minus;&minus; : &#8220;.round($end3 &#8211; $start3, 3).&#8221;Sekunden\n&#8221;;<br />
echo &#8220;&minus;&minus;\$i: &#8220;.round($end4 &#8211; $start4, 3).&#8221;Sekunden\n&#8221;;</p>
<p>?&gt;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://iteamwork.de/preinkrement_gegen_postinkrement.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[PHP] Alternative zu die(mysql_error());</title>
		<link>http://iteamwork.de/alternative-zu-mysql_querysql-or-diemysql_error.html</link>
		<comments>http://iteamwork.de/alternative-zu-mysql_querysql-or-diemysql_error.html#comments</comments>
		<pubDate>Wed, 28 May 2008 00:33:42 +0000</pubDate>
		<dc:creator>O.Kriz</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP Snippets]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[debug_backtrace()]]></category>
		<category><![CDATA[mysql_error()]]></category>
		<category><![CDATA[mysql_query()]]></category>
		<category><![CDATA[querysql()]]></category>
		<category><![CDATA[querysqlsimple()]]></category>

		<guid isPermaLink="false">http://iteamwork.de/?p=10</guid>
		<description><![CDATA[Wer kennt das nicht: Ein großes Projekt überall mit SQL-Anfragen gespickt. Um Fehler abzufangen gehen viele so vor: $sql = &#91;SQL-STATEMENT&#93;; &#160; mysql_query&#40;$sql&#41; or die&#40;mysql_error&#40;&#41;&#41;; Nun bekommt man jedoch nur den SQL Error ausgegeben, und kann sich auf eine lange Suche einstellen. Nicht so bei verwenden der debug_backtrace() Funktion. Hier ein praktisches Snippet, teils von [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fiteamwork.de%2Falternative-zu-mysql_querysql-or-diemysql_error.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fiteamwork.de%2Falternative-zu-mysql_querysql-or-diemysql_error.html&amp;source=okriz&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Wer kennt das nicht: Ein großes Projekt überall mit SQL-Anfragen gespickt.<br />
Um Fehler abzufangen gehen viele so vor:</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="re0">$sql</span> <span class="sy0">=</span> <span class="br0">&#91;</span>SQL<span class="sy0">-</span>STATEMENT<span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span> or <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
</div>
<p>Nun bekommt man jedoch nur den SQL Error ausgegeben,<br />
und kann sich auf eine lange Suche einstellen.<span id="more-10"></span></p>
<p>Nicht so bei verwenden der debug_backtrace() Funktion.</p>
<p>Hier ein praktisches Snippet, teils von php.net, teils von mir <img src='http://iteamwork.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
So wird im Fehlerfall nicht nur der SQL-Error ausgegeben, sondern<br />
auch jede Stelle, an der er in den Skripten auftritt.</p>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">function</span> querysqlsimple<span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span> <span class="co1">// für simple kommandos wie update, insert…</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$result</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span> OR dieDebug<span class="br0">&#40;</span><a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <a href="http://www.php.net/mysql_affected_rows"><span class="kw3">mysql_affected_rows</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> querysql<span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span> <span class="co1">//für select anweisungen</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$result</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_query"><span class="kw3">mysql_query</span></a><span class="br0">&#40;</span><span class="re0">$sql</span><span class="br0">&#41;</span> OR dieDebug<span class="br0">&#40;</span><a href="http://www.php.net/mysql_error"><span class="kw3">mysql_error</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">return</span> <span class="re0">$result</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> dieDebug<span class="br0">&#40;</span><span class="re0">$sError</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">echo</span> <span class="st0">&quot;&lt;hr /&gt;&lt;div&gt;&lt;b&gt;&quot;</span><span class="sy0">.</span><span class="re0">$sError</span><span class="sy0">.</span><span class="st0">&quot;&lt;/b&gt;&lt;hr /&gt;&lt;br /&gt;&lt;table border=&#8217;1&#8242;&gt;&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="re0">$sOut</span><span class="sy0">=</span><span class="st0">&quot;&quot;</span><span class="sy0">;</span> <span class="re0">$aCallstack</span><span class="sy0">=</span><a href="http://www.php.net/debug_backtrace"><span class="kw3">debug_backtrace</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">echo</span> <span class="st0">&quot;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;file&lt;/th&gt;&lt;th&gt;line&lt;/th&gt;&lt;th&gt;function&lt;/th&gt;&quot;</span><span class="sy0">.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;&lt;/tr&gt;&lt;/thead&gt;&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">foreach</span><span class="br0">&#40;</span><span class="re0">$aCallstack</span> <span class="kw1">as</span> <span class="re0">$aCall</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$aCall</span><span class="br0">&#91;</span><span class="st_h">&#8216;file&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$aCall</span><span class="br0">&#91;</span><span class="st_h">&#8216;file&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st_h">&#8216;[PHP Kernel]&#8216;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><a href="http://www.php.net/isset"><span class="kw3">isset</span></a><span class="br0">&#40;</span><span class="re0">$aCall</span><span class="br0">&#91;</span><span class="st_h">&#8216;line&#8217;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="re0">$aCall</span><span class="br0">&#91;</span><span class="st_h">&#8216;line&#8217;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="st0">&quot;&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">echo</span> <span class="st0">&quot;&lt;tr&gt;&lt;td&gt;{<span class="es4">$aCall</span>[&quot;</span><a href="http://www.php.net/file"><span class="kw3">file</span></a><span class="st0">&quot;]}&lt;/td&gt;&lt;td&gt;{<span class="es4">$aCall</span>[&quot;</span>line<span class="st0">&quot;]}&lt;/td&gt;&quot;</span><span class="sy0">.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="st0">&quot;&lt;td&gt;{<span class="es4">$aCall</span>[&quot;</span><span class="kw2">function</span><span class="st0">&quot;]}&lt;/td&gt;&lt;/tr&gt;&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw1">echo</span> <span class="st0">&quot;&lt;/table&gt;&lt;/div&gt;&lt;hr /&gt;&lt;/p&gt;&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <a href="http://www.php.net/die"><span class="kw3">die</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">querysqlsimple<span class="br0">&#40;</span><span class="st0">&quot;UPDATE table SET value=…&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//beispiel für update</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$result</span> <span class="sy0">=</span> querysql<span class="br0">&#40;</span><span class="st0">&quot;SELECT * FROM table …&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//beispiel für select</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$db</span> <span class="sy0">=</span> <a href="http://www.php.net/mysql_fetch_object"><span class="kw3">mysql_fetch_object</span></a><span class="br0">&#40;</span><span class="re0">$result</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="sy0">&#8230;</span></div>
</li>
</ol>
</div>
</div>
<p>Links:<br />
<a href="http://de2.php.net/debug_backtrace" target="_blank">debug_backtrace() Funktion Erklärung (php.net)<br />
</a><a href="http://de2.php.net/manual/de/function.debug-backtrace.php#65433" target="_blank">dieDebug() Snippet (php.net)</a></p>
<p>Hoffe es hilft euch <img src='http://iteamwork.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://iteamwork.de/alternative-zu-mysql_querysql-or-diemysql_error.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

