Archive

Posts Tagged ‘MySQL’

Ah se não fosse o pinguim!

May 25th, 2008 Ved 6 comments

Tem certas coisas (aliás, muitas…) que não se pode fazer com o Windows. Não porque não seja recomendável, mas porque simplesmente não é possível. Levantar uma base de dados MySQL, que seja maior do que 10Mb é uma delas e é a que mais me dá problema. Já tentei HeidiSQL, phpMyAdmin, Toad, MySQL Console e o c*** a quatro e nada de conseguir. Nem que estivesse disposto a esperar 2 dias para levantar a tal base de dados (e acredite: eu não estou!) eu conseguiria, pois em determinado momento o software trava (caso do Heidi e Toad) ou o PHP dá timeout, no caso do phpMyAdmin.

Felizmente tenho em minha máquina um dual boot com o Ubuntu instalado como segundo (a caminho de virar primeiro) sistema operacional.

Essa semana, devido ao início do trabalho na nova empresa, foi necessário levantar uma base de dados localmente. Não tão grande (97Mb) mas com mais de 1 milhão e meio de registros, o que tornava a operação mais complexa. Tentei no Windows e nada… confesso que num arroubo de compreensão eu cheguei a esperar 19 minutos para ver se o software voltava à vida, com a boa notícia de sucesso. Mas nada: não chegava a 1/3 dos dados.

Decidi então botar um fim à palhaçada e reiniciar a máquina, acessando dessa vez meu poderoso Linux. Bem, foi abrir o console, navegar até o diretório onde estava meu arquivo .sql e digitar o mágico comando mysql -hlocalhost -uroot -pxxxxx banco_de_dados < dump.sql e em alucinantes 3 minutos (sim, eu disse três minutos) todos os 1 milhão e cacetada de dados estavam prontinhos para utilização.

Para fazer chegá-los até o windows, simplesmente copiei a pasta com o nome do banco de dados que estava em /var/lib/mysql para a minha pasta de armazenamento do MySQL no Windows e voilá: tudo funcionando!

É… é questão de tempo até eu adotar o pinguim como meu sistema principal!

Grande abraço a todos!

Ved

Categories: Linux, MySQL, Opinião Tags: , , ,

PHP: conectar ao MySQL usando a biblioteca ADOdb

April 27th, 2007 Ved 10 comments

Considero a forma nativa de conectar ao MySQL a partir do PHP um tanto burocrática e um pouco confusa. Vejamos uma comparação entre essa forma e o meu jeito, utilizando a biblioteca ADOdb:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');
mysql_select_db('my_database');
$query = 'SELECT * FROM my_table';
$result = mysql_query($query);
echo "<table>";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
    echo "<tr>";
    foreach ($line as $col_value) {
        echo "<td>$col_value</td>";
    }
    echo "</tr>";
}
echo "</table>";
mysql_free_result($result);
mysql_close($link);

Esse mesmo código utilizando ADOdb para conexão ficaria assim:

1
2
3
4
5
6
7
8
9
10
11
12
13
include('/path/to/adodb.inc.php');
$db = NewADOConnection('mysql');
$db->Connect("mysql_host", "mysql_user", "mysql_password", "my_database");
$rs = $db->Execute("SELECT * FROM my_table");
echo "<table>";
while (!$rs->EOF) {
    $col_value=$rs->fields['col_value'];
    echo "<tr>";
    echo "<td>$col_value</td>";
    echo "</tr>";
    $rs->MoveNext();
}
echo "</table>";

Um pouco mais conciso, não é mesmo? Além de prover a conexão com o banco e lidar com os resultados das queries, a blblioteca ainda possui outras funcionalidade, como gerenciamento mais eficiente de sessões, entre outros.

Preparei um screencast mostrando desde o download até a obtenção dos dados. Ficou meio pesadão, mas com o tempo farei coisa mais eficiente.

Screencast 001 | PHP: conectar ao MySQL usando a biblioteca ADOdb

Um abraço,

Ved

Categories: PHP Tags: ,