|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 5 ![]() |
Bonjour,
j'aimerais pouvoir réaliser des requêtes qui fonctionne autant pour Postgre que pour MySQL. Du coup j'utilise PDO pour uniformiser tout ça. Ma DB existante sur MySQL utilise des champs/table avec des majuscules (ex:ID_Maison,..) et du retour de la requête j'en retire un objet pré defini avec des set et get (getID_Maison(),...). Mais Postgre lui n'aime pas trop les majuscule et si l'on veut faire un Code :
SELECT * FROM habitation WHERE ID_Maison = $id Les solutions proposées : - mettre des `` à la place des "" mais Postgre ne les acceptes pas. - renommer les champs,table,.. en minuscule => vu la taille de la DB je n'ose imaginer le bordel.. - mettre des `` et quand on fait appelle à pdo parser la requête et remplacer les `` par des "" si on utilise Postgre...bof bof. N'y aurait-il pas un réglage/paramètre/astuce rédempteur à ce problème ? Si vous avez une solution, je suis de toute ouïe. Merci d'avance et bonne soirée/journée. Antoine. |
|
|
00
|
|
|
#2 | ||
|
Membre actif
![]() Tobbi Filteau Inscription : mai 2010 Messages : 176 ![]() |
Bonjour,
Je ne sais pas à quel niveau tu travailles exactement (niveau du PHP ou niveau du SQL directement). Cependant, en supposant que tu te trouves au niveau PHP, tu pourrais essayer de te passer un paramètre à ton script qui serait justement le guillemet dont tu as besoin/pas besoin dépendant de quel SGBD tu utilises. En supposant que tu utilises le POST, tu pourrais avoir une variable: Code :
Code :
$sql = "SELECT " . $_POST['delimiteur'] . "CH_test" . $_POST['delimiteur'] . " FROM table test"; |
||
|
|
00
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 5 ![]() |
Bonjour osuwariboy,
effectivement cela ce trouve au niveau PHP. Ton idée rejoint un peu celle que j'ai citée : Citation:
Je pense que j'espère un peu trop une solution miracle..(met tel paramètre à 1 et Postgre tiendra compte des majuscules sans devoir mettre des "",..) |
|
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Tobbi Filteau Inscription : mai 2010 Messages : 176 ![]() |
Pas de problème, content de pouvoir être utile
Je ne sais pas si la fonction PDO::prepare est une fonction assez intelligente pour préparer correctement la requête dépendant du SGBD? Ça vaudrait peut-être le coup d'essayer http://www.php.net/manual/fr/pdo.prepare.php |
|
|
00
|
|
|
#5 |
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 167 ![]() |
Votre souci est une mauvaise conception de votre base de données.
Si vous voulez travailler avec deux base de données, vous deviez prendre en compte les spécifications de vos moteurs de base de données. Soit dit en passant , les standards SQL donne les mots clés en Majuscule (SELECT....FROM....WHERE) et le reste en minuscule. Maintenant, il est possible de forcer la majuscule dans PostgreSQL, mais cela n'est pas mis par défaut. Donc si vous voulez proposez votre projet à d'autres, ils seront obligé de prendre la même config que vous....ce qui représente un sérieux freins pour l'acceptation de votre projet. Il vaut peut-être mieux perdre une journée à re-modéliser votre Db afin de la rentre compatible pour les deux environnent.
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 5 ![]() |
je d'accord avec MaitrePylos. Maintenant, il semble impossible de tout redéfinir, du moins pour l'instant.
Quand tu dis qu'il est possible de forcer la majuscule, tu parles des "" ou d'un paramètre à changer ? Pour le prepare de PDO, j'ai essayé, sans succès, merci quand même |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 5 ![]() |
MaitrePylos, saurais-tu répondre à ma question ?
Quand tu dis qu'il est possible de forcer la majuscule, tu parles des "" ou d'un paramètre à changer ? Merci d'avance. |
|
|
00
|
|
|
#8 |
![]() ![]() Gérard ErnaelstenDBA & Dev PHP Inscription : juin 2005 Messages : 3 167 ![]() |
Alors pour PostgreSQL je me suis un peu avancé, pour MySQL il y a moyen de définir la statut .
Maintenant si tu es sur Windows, cela ne devrais pas poser de soucis ?
__________________
Il faut toujours viser la lune, car même en cas d'échec on arrive dans les étoiles. O.Wilde Mes Articles/Critiques : Merise - Guide pratique PHPExcel PostgreSQL : Administration et exploitation d'une base de données PostgreSQL : Entraînez-vous à créer et programmer une base de données relationnelle |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : novembre 2010 Messages : 5 ![]() |
Malheureusement je n'ai pas de problème de casse sous MySQL mais juste sur Postgres..
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com