<?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>Kubiczek devblog &#187; SQL</title>
	<atom:link href="http://blog.kubiczek.eu/tag/sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kubiczek.eu</link>
	<description>I&#039;m lovin&#039; it ;)</description>
	<lastBuildDate>Thu, 19 Jan 2012 12:09:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Kropka i przecinek czyli liczby w PHP i MySQL</title>
		<link>http://blog.kubiczek.eu/2008/08/kropka-i-przecinek-czyli-liczby-w-php-i-mysql/</link>
		<comments>http://blog.kubiczek.eu/2008/08/kropka-i-przecinek-czyli-liczby-w-php-i-mysql/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 22:09:03 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=22</guid>
		<description><![CDATA[Być może napotkaliście kiedyś problem z reprezentacją liczb naturalnych w PHP i MySQL. Otóż MySQL jako punkt dziesiętny stosuje zawsze kropkę, w PHP zależy to natomiast od ustawionej lokalizacji. Tym samym, jeżeli w PHP ustawimy lokalizację, w której punkt dziesiętny nie jest kropką (na przykład polską), wstawiając takie liczby do zapytania SQL otrzymamy błąd SQL: [...]]]></description>
			<content:encoded><![CDATA[<p>Być może napotkaliście kiedyś problem z reprezentacją liczb naturalnych w PHP i MySQL. Otóż MySQL jako punkt dziesiętny stosuje zawsze kropkę, w PHP zależy to natomiast od ustawionej lokalizacji.</p>
<p>Tym samym, jeżeli w PHP ustawimy lokalizację, w której punkt dziesiętny nie jest kropką (na przykład polską), wstawiając takie liczby do zapytania SQL otrzymamy błąd SQL:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">setlocale</span><span style="color: #009900;">&#40;</span>LC_ALL ~LC_NUMERIC<span style="color: #339933;">,</span><span style="color: #0000ff;">'pl_PL'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//lub setlocale(LC_ALL,'plk_PLK') na systemach Windows</span>
<span style="color: #000088;">$result</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'UPDATE table SET value='</span><span style="color: #339933;">.</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><em>You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near &#8217;5&#8242; at line 1</em></p>
<p>Rozwiązanie problemu jest oczywiście bardzo proste. Możemy wybrać, wśród dostępnych kategorii, jakich funkcji ma dotyczyć ustawienie lokalizacji.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">setlocale</span><span style="color: #009900;">&#40;</span>LC_TIME<span style="color: #339933;">,</span><span style="color: #0000ff;">'pl_PL'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//lub setlocale(LC_TIME,'plk_PLK') na systemach Windows</span>
<span style="color: #000088;">$result</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">5</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'UPDATE table SET value='</span><span style="color: #339933;">.</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//teraz będzie ok</span></pre></div></div>

<p>Oto lista wszystkich dostępnych opcji dla <a class="def" href="http://php.net/setlocale/">setlocale</a>. Dla każdej z nich można ustawić inną lokalizację:</p>
<ul>
<li>LC_ALL for all of the below</li>
<li>LC_COLLATE for string comparison, see strcoll()</li>
<li>LC_CTYPE for character classification and conversion, for example strtoupper()</li>
<li>LC_MONETARY for localeconv()</li>
<li>LC_NUMERIC for decimal separator (See also localeconv())</li>
<li>LC_TIME for date and time formatting with strftime()</li>
<li>LC_MESSAGES for system responses (available if PHP was compiled with libintl)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/08/kropka-i-przecinek-czyli-liczby-w-php-i-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

