Archive pour le ‘Mysql’ catégorie

Importer des fichiers trop volumineux pour PHPmyAdmin

13 avril 2010

Si le fichier SQL que vous essayez d’importer est trop volumineux pour PhpMyAdmin, il vous reste la solution d’importer dans MySQL directement en ligne de commande.

mysql -D ma_base_de_donnees -u nom_Utilisateur -p mot_de_passe < mon_gros_fichier.sql

Vous ne passez plus par l’interface web et du coup vous ne serez pas limité.

Avant d’exécuter la commande placez vous,avec la commande cd, dans le dossier qui contient votre fichier mon_gros_fichier.sql. nom_Utilisateur et mot_de_passe correspondent à un utilisateur MySQL, vous pouvez paramétrer les droits de celui-ci (GRANT par exemple) dans privilèges dans l’interface PHPmyAdmin

Pour exécuter cette ligne de commande vous pouvez vous connecter sur le serveur Web avec Putty par exemple et pour mettre le fichier sur le serveur vous pouvez utiliser un client FTP comme fileZilla.

Mysql : ON DUPLICATE KEY UPDATE

4 mars 2010

Une petite clause bien pratique : ON DUPLICATE KEY UPDATE.
Imaginez que vous vouliez mettre à jour un enregistrement dans votre base dans le cas ou celui ci existe déjà et sinon, s’il n’existe pas, en créer un nouveau. Une solution serait de faire un SELECT sur la clé, et soit un UPDATE ou un INSERT selon que la clé existe ou non. Une autre solution serait de faire un UPDATE et si mysql_affected_rows == 0 alors vous faites un INSERT… Pourquoi pas.

Mais MySQL permet de faire tout ça en une seule requête !
[cc lang=’php’ width=’100%’]
INSERT INTO maTable (id_table,champ_table)
VALUES (‘152′,’valeur à modifier’)
ON DUPLICATE KEY UPDATE
champ_table=’valeur à modifier’;
[/cc]
Bien entendu, pas besoin de mettre de WHERE dans la partie UPDATE vu que c’est parce que la clé existe que le update est exécuté

A noter que ON DUPLICATE KEY UPDATE est différent de REPLACE qui s’apparente plutôt à un DELETE + INSERT qui oblige à donner une valeur à tous les champs, alors qu’avec ON DUPLICATE KEY UPDATE on ne spécifie que les champs qui sont à modifier.