Page 1 sur 1

Pb avec un tiret dans le nom de base

Posté : 07 janv. 2006, 23:32
par MustyAlien
Bonjour à tous,

Voilà j'ai un gros problème sur une de mes bases de données d'un site...
J'ai réalisé un fichier PHP pour les sauvegardes auto des bases de données des sites que je fais (encore en version Beta), certains vont me dire qu'il existe des script tout fait pour ça, mais moi j'aime bien me prendre la tête, y a que comme ça qu'on apprend ;)

ex de nom de base : ma-base_com1 -> nom de domaine ma-base.com

Donc dès que je fais une query sur cette base de donnée, ça ne marche pas juste car il y a un tiret dans le nom de base (Nom que je ne peux changer car c'est chez lycos pro).

ex :
$statusTables = mysql_query("SHOW TABLE STATUS FROM ma-base_com1");
J'ai essayé chez moi en offline, et j'ai le même résultat, si je remplace le tiret par un underscrore ça marche, c'est donc bien le tiret le problème :(

Quelqu'un a une astuce ?

Merci d'avance :)

Posté : 07 janv. 2006, 23:37
par Cyrano
Essaye en mettant comme ceci:
$statusTables = mysql_query("SHOW TABLE STATUS FROM `ma-base_com1`");

Posté : 07 janv. 2006, 23:50
par MustyAlien
OUuuuuaiiiiiiiiiiiss

Génialissime, merci beaucoup Cyrano (tu veux pas m'épouser ? vu que c'est toujours toi qui répond à mes question) ;)

++

Posté : 07 janv. 2006, 23:52
par Cyrano
lol
Ce qui serait encore mieux c'est que tu comprennes pourquoi ça marche ;)

En fait, sans les ``, le "-" au milieu du nom de ta table est interprété comme un opérateur et non comme un caractère au même titre qu'une lettre. D'où l'importance d'être très discipliné coté codage. Personnellement, j'utilise systématiquement les `` et je me pose pas de questions. :)

Posté : 07 janv. 2006, 23:56
par MustyAlien
Ben c'est ce que je vais faire maintenant... lol

D'ailleurs j'aurais du m'en apercevoir, car dans mon code pour exporter les tables j'ai utilisé les "` `" ;)

Encore merci

Posté : 08 janv. 2006, 00:01
par albat
<mode jaloux>
  • J'aurais tout aussi bien pu donner la réponse. [-(
  • Juste une mise en garde :
    plutôt que d'utiliser les ' autour de noms illicites de bases et de tables, [-X
    mieux vaut utiliser des noms licites et laisser tomber les apostrophes. ;)
[/list]</mode jaloux> :langue: