j'utilise fréquemment mysql mais il y a une chose que je ne comprends
pas bien. J'ai fait une petite classe pour simplifier mon utilisation
des bases (et avoir un pseudo recordset) mais selon le serveur que
j'utilise, le fonctionnement diffère.
La classe contient (j'élimine ce qui n'est pas intéressant pour mon
problème):
function query($query) {
$this->query = trim($query);
if ($this->resultid = mysql_query($this->query, $this->connectid)) {
if (preg_match('!^select!i', $this->query)) {
$this->_fetch_assoc();
} elseif (preg_match('!^(insert|replace)!i', $this->query)) {
$this->_insert_id();
}
$this->_count();
}
}
Vous pouvez noter les 2 lignes commentées dans la fonction _count(). Et
bien selon le serveur ou je suis, l'utilisation (ou pas) de
$this->resultid en paramêtre de mysql_num_rows() ou de
mysql_affected_rows() provoque une erreur.
Je ne remarque pas ce souci aujourd'hui, je vous rassure, mais
j'aimerais bien comprendre et surtout savoir comment faire pour avoir
une classe utilisable partout sans avoir à la modifier.
Merci bien.
--
Réseau IRC Francophone: http://www.zeolia.net
Aide et astuces webmasters : http://www.c-p-f.org
Communauté Francophone sur les Eggdrops: http://www.eggdrop.fr
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sylvain SF
CrazyCat a écrit :
Bonjour à tous,
bonjour,
La classe contient (j'élimine ce qui n'est pas intéressant pour mon problème):
j'ai toujours utilisé les variantes avec paramètres.
Vous pouvez noter les 2 lignes commentées dans la fonction _count(). Et bien selon le serveur ou je suis, l'utilisation (ou pas) de $this->resultid en paramêtre de mysql_num_rows() ou de mysql_affected_rows() provoque une erreur.
soit c'est erratique pur, ce serait inattendu. soit cela dépends de la version de PHP (ou de sa compile). avez-vous noté des différences de versions entre les 2 configs ?
une classe utilisable partout sans avoir à la modifier.
ou peut être de manière déterministe vis a vis d'une info serveur (telle la version de PHP ou apache ou mysqld ...)
Sylvain.
CrazyCat a écrit :
Bonjour à tous,
bonjour,
La classe contient (j'élimine ce qui n'est pas intéressant pour mon
problème):
j'ai toujours utilisé les variantes avec paramètres.
Vous pouvez noter les 2 lignes commentées dans la fonction _count(). Et
bien selon le serveur ou je suis, l'utilisation (ou pas) de
$this->resultid en paramêtre de mysql_num_rows() ou de
mysql_affected_rows() provoque une erreur.
soit c'est erratique pur, ce serait inattendu.
soit cela dépends de la version de PHP (ou de sa compile).
avez-vous noté des différences de versions entre les 2 configs ?
une classe utilisable partout sans avoir à la modifier.
ou peut être de manière déterministe vis a vis d'une info
serveur (telle la version de PHP ou apache ou mysqld ...)
La classe contient (j'élimine ce qui n'est pas intéressant pour mon problème):
j'ai toujours utilisé les variantes avec paramètres.
Vous pouvez noter les 2 lignes commentées dans la fonction _count(). Et bien selon le serveur ou je suis, l'utilisation (ou pas) de $this->resultid en paramêtre de mysql_num_rows() ou de mysql_affected_rows() provoque une erreur.
soit c'est erratique pur, ce serait inattendu. soit cela dépends de la version de PHP (ou de sa compile). avez-vous noté des différences de versions entre les 2 configs ?
une classe utilisable partout sans avoir à la modifier.
ou peut être de manière déterministe vis a vis d'une info serveur (telle la version de PHP ou apache ou mysqld ...)
Sylvain.
Pascal PONCET
CrazyCat a écrit :
Vous pouvez noter les 2 lignes commentées dans la fonction _count(). Et bien selon le serveur ou je suis, l'utilisation (ou pas) de $this->resultid en paramêtre de mysql_num_rows() ou de mysql_affected_rows() provoque une erreur.
Bonjour,
Je crois savoir que l'argument de type "result resource" est obligatoire pour la fonction "mysql_num_rows()". Par contre, il est facultatif avec la fonction "mysql_affected_rows()".
Si les fonctions sont bien utilisées et que l'erreur persiste sur un serveur, il serait intéressant d'en connaître le message pour tenter de comprendre.
Cordialement, Pascal
CrazyCat a écrit :
Vous pouvez noter les 2 lignes commentées dans la fonction _count(). Et
bien selon le serveur ou je suis, l'utilisation (ou pas) de
$this->resultid en paramêtre de mysql_num_rows() ou de
mysql_affected_rows() provoque une erreur.
Bonjour,
Je crois savoir que l'argument de type "result resource" est obligatoire
pour la fonction "mysql_num_rows()".
Par contre, il est facultatif avec la fonction "mysql_affected_rows()".
Si les fonctions sont bien utilisées et que l'erreur persiste sur un
serveur, il serait intéressant d'en connaître le message pour tenter de
comprendre.
Vous pouvez noter les 2 lignes commentées dans la fonction _count(). Et bien selon le serveur ou je suis, l'utilisation (ou pas) de $this->resultid en paramêtre de mysql_num_rows() ou de mysql_affected_rows() provoque une erreur.
Bonjour,
Je crois savoir que l'argument de type "result resource" est obligatoire pour la fonction "mysql_num_rows()". Par contre, il est facultatif avec la fonction "mysql_affected_rows()".
Si les fonctions sont bien utilisées et que l'erreur persiste sur un serveur, il serait intéressant d'en connaître le message pour tenter de comprendre.