Erreur dans function fetch() on a non-objec

Eléphant du PHP | 250 Messages

18 avr. 2010, 18:45

Peux-tu écrire var_dump($id_con->errorInfo()); stp ?
Je l'ai rajouté ici :

if($result!=1)
{
echo'<br/>Une erreur '.$id_con->errorCode().' '.$id_con->errorInfo().' '.var_dump($id_con->errorInfo());

Ce qui donne :
array(3) { [0]=> string(5) "00000" [1]=> NULL [2]=> NULL }

un tableau vide je pense.
Modifié en dernier par diabless6 le 18 avr. 2010, 18:47, modifié 1 fois.
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

devlop78
Invité n'ayant pas de compte PHPfrance

18 avr. 2010, 18:46

PDO::exec() executes an SQL statement in a single function call, returning the number of rows affected by the statement.
Décidemment, PDO ne m'aime pas ;)

Alors il se peut que comme tu ne modifies pas tes données, il ne modifie rien, donc te retourne 0. Toi tu crois que c'est un message d'erreur, mais le message d'erreur 000000 n'en est peut-être pas un.

devlop78
Invité n'ayant pas de compte PHPfrance

18 avr. 2010, 18:48

D'ailleurs la chose bizarre est surement dûe au fait que tu affiches ton formulaire AVANT de faire les modifications. Donc je te conseille de modifier avant d'afficher.

devlop78
Invité n'ayant pas de compte PHPfrance

18 avr. 2010, 18:49

Code : Tout sélectionner

If no rows were affected, PDO::exec() returns 0. Warning This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function.
Tout est dit dans ce texte. En gros tu ne dois pas faire

if($result!=1)
{
echo'<br/>Une erreur '.$id_con->errorCode().' '.$id_con->errorInfo();
}


Mais

if($result===false)
{
echo'<br/>Une erreur '.$id_con->errorCode().' '.$id_con->errorInfo();
}

Eléphant du PHP | 250 Messages

18 avr. 2010, 18:50

Ben oui mais mon else ne marche pas en tout cas:
 if($result!=1)
    {
        echo'<br/>Une erreur '.$id_con->errorCode().' '.$id_con->errorInfo().' ';echo var_dump($id_con->errorInfo());
    }
    else
    {
        echo'<br/><br/>modifications enregistrées !';
        
        echo "<script type=\"text/javascript\">setTimeout(\"window.location='"."affichage.php'\",3000)</script>";
        
    }
Bon ben c'est vrai qu'il y a pas de modification, mais alors comment je fait là avec ma redirection en javascript !
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

devlop78
Invité n'ayant pas de compte PHPfrance

18 avr. 2010, 18:51

Réponse dans mon dernier post.

Eléphant du PHP | 250 Messages

18 avr. 2010, 19:00

Réponse dans mon dernier post.
ça marche. Ail! ail! C'est tordu là quand même, avec les === j'ai pas l'habitude.

Ils font rien pour faciliter les choses #-o

Merci encore =D>
J'ai un petit éléphant rose chez moi avec dessus PHP woman :p
Pour une Europe sans hypocrisie, n'y barratins.
L'euro caca j'en veux plus. Les conneries c'est fini.

devlop78
Invité n'ayant pas de compte PHPfrance

18 avr. 2010, 19:05

Oui cela dit c'est souvent comme ça et c'est marqué ;)

Le vrai piège c'est qu'il ne modifie que ce qui est différent.