Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/12/2006, 21h58   #1
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Par défaut [ADODB] erreur Query was empty

Salut

J'ai un problème avec ADOdb. pour chaque requête j'obtiens cette erreur :

Citation:
Query was empty
Avec le mode debug activé j'obtiens :

Code :
1
2
3
4
5
6
7
8
9
 
Query: SET AUTOCOMMIT=0 failed. Query was empty
1065: Query was empty
 
                     ADODB_mysqli._Execute(SET AUTOCOMMIT=0, false) % line  889, file: adodb.inc.php
                  ADODB_mysqli.Execute(SET AUTOCOMMIT=0) % line  153, file: adodb-mysqli.inc.php
               ADODB_mysqli.BeginTrans() % line  752, file: adodb.inc.php
            ADODB_mysqli.StartTrans() % line   29, file: ShcMvLoginDao.class.php
         ShcMvLoginDao.checkIfUserExist(Array[3]) % line  141, file: ShcMvLogin.class.php
Je ne comprends pas, sur mon serveur de test, en local, ça fonctionne parfaitement.

EDIT :

de plus, si j'exécute les requêtes directement (avec la fonction mysqli_query), il n'y a pas de problème.
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2007, 12h55   #2
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Vraiment personne ?

Je ne comprend franchement pas pourquoi ça ne fonctionne pas.

Si j'essaie un script de ce genre :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<?php
$connectionID = mysqli_init();
 
mysqli_options($connectionID,5,0);
 
$ok = mysqli_real_connect($connectionID, 'localhost', 'userName', 'motDePasse', 'dbName');
 
$mysql_res =  mysqli_query($connectionID, 'SET AUTOCOMMIT=0');
$mysql_res =  mysqli_query($connectionID, 'BEGIN');
$mysql_res =  mysqli_query($connectionID, "SELECT COUNT(*) FROM utilisateurs");
$mysql_res =  mysqli_query($connectionID, 'ROLLBACK');
$mysql_res =  mysqli_query($connectionID, 'SET AUTOCOMMIT=1');
?>
Je n'ai pas d'erreur
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2007, 20h18   #3
Membre habitué
 
Inscription : novembre 2004
Messages : 398
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 398
Points : 115
Points : 115
Je pense avoir trouvé. ADOdb passe un troisième paramètre à mysqli_query : MYSQLI_STORE_RESULT ou MYSQLI_USE_RESULT (MYSQLI_STORE_RESULT par défaut). Ce que je ne faisait pas dans mon script de test. Ce qui est étrange, c'est que quel que soit le paramètre que je passe ça ne va pas.

$mysql_res = mysqli_query($connectionID, 'SET AUTOCOMMIT=0') -> fonctionne

$mysql_res = mysqli_query($connectionID, 'SET AUTOCOMMIT=0', MYSQLI_USE_RESULT) -> ne fonctionne pas

$mysql_res = mysqli_query($connectionID, 'SET AUTOCOMMIT=0', MYSQLI_STORE_RESULT) -> ne fonctionne pas

pourtant le dernier devrait fonctionner aussi puisque si le 3e paramètre n'est pas indiqué, la fonction mysqli_query utilisera MYSQLI_STORE_RESULT


le serveur posant problème fonctionne avec PHP 5.0.4 et utilise mysqli API version 4.1.20

Le serveur ne posant pas problème (mon serveur de test) fonctionne sous PHP 5.1.6 et utilise :

mysqli API library version 5.0.24a
mysql API header version 5.0.22
JuTs est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h14.


 
 
 
 
Partenaires

Hébergement Web