PMO ne reconnait pas le changement de base de données, ni même du driver.
Voir test2.php ci-joint.
PMO ne reconnait pas le changement de base de données, ni même du driver.
Voir test2.php ci-joint.
Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.
Laplix
http://pmo.developpez.com/
J'ai commencé à corriger le problème et je me rends compte qu'il y a également un truc plus compliqué derrière au niveau du driver pdo pour sqlite
sqlite ne connait pas la methode execute ://
PhpMyObject teck leader
http://pmo.developpez.com
La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
?? Cette page (http://sqlite.org/pragma.html) parle de sqlite3_prepare() et de sqlite3_step(). À moins que je ne me trompe, c'est la même fonctionnalité non?
De toute façon, PDO émule cette fonctionnalité si elle n'est pas présente nativement. Voir cette page à ce sujet : http://ca3.php.net/manual/fr/function.PDO-prepare.php
À moins que je n'aie vraiment pas compris ta remarque?
Par contre, pour que sqlite fonctionne correctement avec un driver pdo, il faut ajuster PMO_sgbd_pdo et remplacer ce code dans la fonction connectSgbd()
par ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 self::$DB = new PDO("$authdb[pdodriver]:host=$authdb[host];dbname=$authdb[base]", $authdb['user'], $authdb['pass']); self::$DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 if ($authdb['pdodriver'] == 'sqlite') self::$DB = new PDO($authdb['dsn']); else self::$DB = new PDO("$authdb[pdodriver]:host=$authdb[host];dbname=$authdb[base]", $authdb['user'], $authdb['pass']); self::$DB->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.
Laplix
http://pmo.developpez.com/
J'ai écrit un petit test pour essayer de comprendre le problème avec execute(). Mais je ne vois toujours pas...
Si je me suis trompé, n'hésites pas !!
Regarde au-delà de l'horizon. L'univers est là-bas. Tes rêves aussi.
Laplix
http://pmo.developpez.com/
pas eu le temps de répondre encore, je test et je vois pourquoi ça ne marche pas, et je te donne un retour
PhpMyObject teck leader
http://pmo.developpez.com
La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
Je viens d'appliquer un premier correctif sur le svn.
Je crois que le problème a été réglé, peux-tu confirmer ?
PhpMyObject teck leader
http://pmo.developpez.com
La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
Par rapport à ton exemple:
ne fonctionne pas. Pdo ne renvoie aucune exception, il ne renvoit aucun objet pdostatement, je ne sais pas pourquoi ? peut-être as tu une explication ?$database = dirname(__FILE__).'/test2.db';
$pdo = new PDO("sqlite:".$database);
$pdostatement = $pdo->prepare("select * from adress");
$pdostatement->execute();
PhpMyObject teck leader
http://pmo.developpez.com
La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
je viens de vérifier quand le fichier db n'est pas un fichier de bdd sqlite, aucune exception est remontée par le driver pdo .
Le problème que tu as remonté est normalement corrigé avec sqlite.
PhpMyObject teck leader
http://pmo.developpez.com
La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
deuxieme chose sqlite ne renvoit pas de messages d'erreurs non plus quand la table n'existe pas :/
J'ai implémenté quelque chose dans le driver sqlite pour que ça remonte une exception quand la table n'existe pas.
PhpMyObject teck leader
http://pmo.developpez.com
La justice de l'intelligence est la sagesse. Le sage n'est pas celui qui sait beaucoup de choses, mais celui qui voit leur juste mesure.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager