Exporting MySQL databases

PhpMyAdmin does a pretty decent job at exporting MySql database with their structure and/or their data to a plain SQL file. One thing bugged me though: it encloses every table/column/whatever name in backquotes like in `addr_city` varchar(50). Who needs this? Are there really people who put spaces, commas, quotes and special chars in their database object names?? |-|

Today, I finally fixed this. You need to open config.inc.php and change this line:

$cfg['Export']['sql_backquotes'] = FALSE;

Life is good! :D

Another lousy PHP/MySQL /charset issue...

We had this quite interesting situation at work today: I export an UTF-8 MySQL database into an UTF_8 SQL file. I *binary* FTP the file over to him. He plays the SQL in PHPmyAdmin all configured for UTF-8. He then checks the data in PHPmyAdmin: special chars display right under an UTF-8 page encoding. He checks under the command line: the DB contents seem to be UTF-8 encoded too...

Now he goes to our app, pulls out some data... and gets a special chars mess... although the html page is displayed as UTF-8. If we force the display to Latin-1, the special chars display correctly again.

The reason for this is that there is actuallly a charset translation taking place between the mysql client (which is PHP here) and the mysql server.

We found we could fix this by editing my.cnf and specifying the following:

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8

...instead of the latin-1 he had there for some obscure reason.

However, there must be a more explicit way to have PHP retrieve the mysql data as UTF-8, even though we could not find that in mysql_connect() or somethig alike.

Guess, we'll have to investigate the PhpMyAdmin code and see how those guys do it. Btw, this reminds me of a conference by Rasmus Lerdorf where he said the code for PhpMyAdmin was pretty clean and should be studied. Yep, we definitely gotta do that! ;)

The Unofficial Fedora FAQ

Most useful Fedora rundown I came accross this week B)

PowerDesigner/AMC est en train de me pourrir mon aprem :(

J'utilise le module Physical Architect ("Développeur SQL" en VF) pour générer une base MySQL 4.0. Je mets plein de références dans tous les sens et ensuite je génère le script de création de la base. PowerDesigner fait ça très bien, il crée bien toutes les contraintes de clef étrangère etc.

Mais, car il y a un mais: il semble vérifier poru chaque clef étrangère, si le champ référençant fait partie d'un index. Si c'est le cas, tout va bien. Si ce n'est pas le cas... PowerDesigner insiste pour créer un index sur ce champ alors que je ne lui ai rien demandé à ce bougre!!!

Et le pire de tout, c'est qu'il le crée avec un erreur de syntaxe! (CREATE index_name au lieu de CREATE index_name ON table_name). Résultat, mon script de création est pourri de création d'index aussi gênantes qu'inutiles.

Si vous avez compris ce que je viens de dire, vous êtes très fort. Si en plus, vous savez comment reconfigurer la défition mySQL de PowerDesigner pour qu'il arrête de déconner, alors vous êtes un Dieu!

Bon, voilà, j'ai râlé un ptit coup, je peux retourner me prendre la tête :P

Offre de stage PHP

Dans le cadre de mon job, je cherche un stagiaire PHP. Si ça peut vous intéresser, voici quelques précisions:

On ne vous demande pas de formation ou de diplôme particulier, mais vous devez avoir une petite expérience pratique de PHP, de XHTML+CSS et une base de données quelconque. Si en plus vous avez déjà touché au code de b2evolution, c'est un plus, mais bon c'est pas indispensable. (Bien que notre projet n'aie rien à voir avec les blogs, nous utilisons une partie du code de b2evolution).

Le stage consistera principalement à développer des modules d'administration implémentant les classiques lister/créer/editer/supprimer pour les enregistrements de la base de données. Vous vous baserez sur le code des modules existants pour créer les nouveaux. En option, si le coeur vous en dit, vous pourrez également essayer d'optimiser le processus de création des nouveaux modules.

Lieu de travail: 92240 Malakoff. Métro: Etienne Dolet (ligne 13).

Si ça vous intéresse, contactez moi directement par email. Envoyez moi votre CV et les contraintes éventuelles liées au stage (dates, durée, alternance éventuelle, combien vous voulez être payé, etc...). Evidemment, des liens vers ce que vous avez déjà pu faire sur le web sont les bienvenus.

Mots clefs supplémentaires: cherche recherche