<?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>Blog do Xorna &#187; mysql</title>
	<atom:link href="http://www.blogdoxorna.com.br/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blogdoxorna.com.br</link>
	<description>Informação sem discrição</description>
	<lastBuildDate>Wed, 05 May 2010 03:44:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Comparações Case Sensitive em consultas Mysql</title>
		<link>http://www.blogdoxorna.com.br/comparacoes-case-sensitive-em-consultas-mysql/</link>
		<comments>http://www.blogdoxorna.com.br/comparacoes-case-sensitive-em-consultas-mysql/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 02:08:55 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[case sensitive]]></category>
		<category><![CDATA[consulta]]></category>
		<category><![CDATA[query]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=167</guid>
		<description><![CDATA[Buenas pessoal, tempão sem postar nada, a vida anda corrida demais, esse artigo está para ser escrito faz um tempão, e como ele é curto eu resolvi postar de uma vez ele. Nele vou lhes apresentar uma solução para realizarmos consultas case sensitive no Mysql.
Para começar, caso você utilize um campo de texto no Mysql [...]]]></description>
			<content:encoded><![CDATA[<p>Buenas pessoal, tempão sem postar nada, a vida anda corrida demais, esse artigo está para ser escrito faz um tempão, e como ele é curto eu resolvi postar de uma vez ele. Nele vou lhes apresentar uma solução para realizarmos consultas case sensitive no Mysql.</p>
<p>Para começar, caso você utilize um campo de texto no Mysql como VARCHAR, TEXT, etc, na hora de fazer uma consulta ele não considerará se seu texto comparado está exatamente igual ao texto da comparação quando falamos em Maiúsculas/Minúsculas. Então para resolver isso, devemos fazer um casting na comparação utilizando o operador <a title="Binary Operator - Mysql 5.0 Reference" href="http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html#operator_binary" onclick="javascript:TrackClick('http%3A%2F%2Fdev.mysql.com%2Fdoc%2Frefman%2F5.0%2Fen%2Fcast-functions.html%23operator_binary','Binary+Operator+-+Mysql+5.0+Reference')" target="_blank">BINARY</a> do Mysql. De longe essa é a alternativa mais simples que eu encontrei, existem outras, que envolvem mudar o COLLATE durante a consulta, mas não me pareceu elegante nem muito promissor.</p>
<p>A função do operador BINARY é muito simples, ele transforma todo o texto passado pra ele em código binário, logo &#8220;x&#8221; em binário é totalmente diferente de &#8220;X&#8221;. Abaixo alguns exemplos:</p>
<pre>    SELECT "x" = "X";
    retorna 1
    SELECT binary "x" = "X"
    retorna 0</pre>
<p>É claro que além dessa comparação simples ele é aceito na comparação LIKE:</p>
<pre>    SELECT binary "xorna" LIKE "%X%"
    retorna 0
    SELECT binary "Xorna" LIKE "%X%"
    retorna 1</pre>
<p>É simples, funciona, eu diria que isso é um <strong>workaround elegante</strong> (se é que existe isso).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/comparacoes-case-sensitive-em-consultas-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Doctrine ORM, Parte II</title>
		<link>http://www.blogdoxorna.com.br/doctrine-orm-parte-ii/</link>
		<comments>http://www.blogdoxorna.com.br/doctrine-orm-parte-ii/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 04:02:07 +0000</pubDate>
		<dc:creator>xorna</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Padrões]]></category>
		<category><![CDATA[Software Livre]]></category>
		<category><![CDATA[banco de dados]]></category>
		<category><![CDATA[conexão]]></category>
		<category><![CDATA[Configuração]]></category>
		<category><![CDATA[Doctrine ORM]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.blogdoxorna.com.br/?p=123</guid>
		<description><![CDATA[Bom, como prometido, o segundo capitulo da Saga &#8220;Doctrine ORM&#8221; vou abordar questões simples como o download da ferramenta, &#8220;instalação&#8221;, e configuração da mesma, deixando a primeira aplicação para o terceiro post, devido sua extensão.
Para baixa o Doctrine ORM é muito simples, basta acessar a página de download oficial, e selecionar a versão desejada, eu [...]]]></description>
			<content:encoded><![CDATA[<p>Bom, como prometido, o segundo capitulo da Saga &#8220;Doctrine ORM&#8221; vou abordar questões simples como o download da ferramenta, &#8220;instalação&#8221;, e configuração da mesma, deixando a primeira aplicação para o terceiro post, devido sua extensão.</p>
<p>Para baixa o Doctrine ORM é muito simples, basta acessar a <a title="Dotrine ORM official download site" href="http://www.doctrine-project.org/download" onclick="javascript:TrackClick('http%3A%2F%2Fwww.doctrine-project.org%2Fdownload','Dotrine+ORM+official+download+site')" target="_blank">página de download oficial</a>, e selecionar a versão desejada, eu aconselho a baixar a última versão stable (atualmente 1.1.0). Após o download, descompacte o arquivo, para o uso em produção você vai precisar somente da pasta lib e de seu conteúdo é claro, tomando como exemplo o ubuntu, vamos criar uma aplicação chamada doctrineTest em /var/www (com as devidas permissões de escrita na pasta):</p>
<pre>$ cd /var/www
$ mkdir doctrineTest
# vá até a pasta Dotrine-1.x.x
$ cp -R lib /var/www/doctrineTest
# aproveita e cria o index.php
$ touch index.php
# vamos criar uma classe para autoload
$ cd /var/www/lib
$ mkdir Util
$ touch Autoload.class.php</pre>
<p>Justo, agora já temos o inicio de nossa aplicação salva no diretório de site do apache, vamos começar a configuração e a entender tudo isso. Abra seu editor preferido (eclipse no meu caso), abra o arquivo lib/util/autoload.class.php, vamos fazer um pequeno truque para nos livrarmos dos includes.</p>
<pre>class Util_Autoload
{
    public function autoload($class)
    {
        $path = str_replace('_', '/', $class) . '.php';
        require_once($path);
        return true;
    }
}</pre>
<p>Feito isso, vamos ao nosso index.php, primeiro vamos configurar nosso autoload <img src='http://www.blogdoxorna.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre>/* Adicionando a pasta libs ao include_path do php */
$include_path  = get_include_path();
$include_path .= PATH_SEPARATOR . dirname(__FILE__) . '/lib';
set_include_path($include_path);
unset($include_path);

/* registrando nossa classe autoload */
require_once(dirname(__FILE__) . '/lib/Util/Autoload.class.php');
spl_autoload_register(array('Util_Autoload', 'autoload'));</pre>
<p>Legal, a essa altura qualquer classe que quisermos carregar dentro de libs estará disponível, agora vamos abrir nossa primeira conexão com o banco de dados (no exemplo MySQL):</p>
<pre>$dsn = 'mysql://username:password@127.0.0.1/doctrineTest';
$manager = Doctrine_Manager::getInstance();
$conn = $manager-&gt;connection($dsn, 'master');
</pre>
<p>Bom, agora já conseguimos conectar a aplicação com o banco de dados, para finalizarmos este capitulo vamos fazer um pequeno teste de conexão, certifique-se que o usuário no qual você está conectando tenha permissões de CREATE no banco de dados. Vamos criar uma tabela e depois inserir dados nela:</p>
<pre>
$conn-&gt;export-&gt;createTable('teste', array('nome' =&gt; array('type' =&gt; 'string')));
$conn-&gt;execute('INSERT INTO teste (nome) VALUES (?)', array('blogdoxorna'));</pre>
<p>Legal, tabela criada, uma linha inserida, agora vamos ler pra ver se é verdade que tá gravando (claro, comentando a linha do create pra não dar pau!) <img src='http://www.blogdoxorna.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<pre>$st = $conn-&gt;prepare('SELECT * FROM teste');
$st-&gt;execute();
$resultset = $st-&gt;fetchAll();
var_dump($resultset);</pre>
<p>O que deve aparecer aí no browser é mais ou menos isso:</p>
<pre>
array
  0 =>
    array
      'nome' => string 'blogdoxorna' (length=11)
      0 => string 'blogdoxorna' (length=11)
</pre>
<p>Bom, encerro aqui o meu post, e lembrando que se eu sair vivo do #NOB #TwitteirosDeJoinville no Biergarten, eu posto a terceira parte ainda hoje 29/04 a noite <img src='http://www.blogdoxorna.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.blogdoxorna.com.br/doctrine-orm-parte-ii/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
