2010-07-20 6 views
0

J'ai mis en place un site sur mon système local en utilisant PDO et une base de données MySQL. J'ai utilisé PDO parce que lorsque le site se trouve sur le serveur live, je dois utiliser SQL Server et j'espérais que PDO s'occuperait de tous mes conflits de requêtes.Problème dans PDO et sqlsrv terrain

Maintenant que je suis sur le serveur live, je reçois une erreur chaque fois que l'application utilise la fonction "LIMIT". Je réalise que c'est une fonction spécifique à MySQL mais que PDO ne devrait pas s'occuper du conflit? Comment puis-je résoudre ce problème pour que le site fonctionne sur MySQL et SQLSRV?

Merci d'avance.

+0

Quelle erreur obtenez-vous? –

Répondre

1

Ne jamais développer dans une technologie prévoyant d'utiliser une technologie différente dans prod.

Échec car il n'y a pas d'équivalent SQL Server pour LIMIT donc il ne peut pas convertir.

Si vous pensez que des backends différents sont possibles, utilisez des instructions SQL standard ANSII et non spécifiques à la base de données. Si vous prévoyez d'utiliser uniquement SQL Server dans Prod, développez dans SQL Server (il existe une version gratuite).

+0

Eh bien, finalement, je veux que ça marche sur les deux. Et oui, je m'y attends. N'est-ce pas ce qu'est l'AOP? – jwerre

+3

"il ne réécrit pas SQL ou émule les fonctionnalités manquantes" de http://www.php.net/manual/fr/intro.pdo.php – HLGEM

+1

@jwerre: non, PDO est sur le point de pouvoir utiliser le même _interface_ (vous n'avez donc pas besoin de modifier les déclarations de fonction/objet réelles, les noms et les appels). Cependant, il n'a aucun contrôle sur les chaînes que vous lui envoyez, et celles-ci devraient être ANSII comme l'a dit HLGEM. – Wrikken