<?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; debug</title>
	<atom:link href="http://iteamwork.de/tag/debug/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] 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>

