Pb avec un tiret dans le nom de base

Eléphant du PHP | 77 Messages

07 janv. 2006, 23:32

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 :)

Mammouth du PHP | 19672 Messages

07 janv. 2006, 23:37

Essaye en mettant comme ceci:
$statusTables = mysql_query("SHOW TABLE STATUS FROM `ma-base_com1`");
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 77 Messages

07 janv. 2006, 23:50

OUuuuuaiiiiiiiiiiiss

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

++

Mammouth du PHP | 19672 Messages

07 janv. 2006, 23:52

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. :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 77 Messages

07 janv. 2006, 23:56

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

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

08 janv. 2006, 00:01

<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: