Mon problème est le suivantpdo Numéro de paramètre non valide
Y ont deux fonctions qui sont appelées à l'intérieur d'une fonction (méthode)
Si le résultat de la première fonction est TRUE, la deuxième fonction exécute une sélection et une requête de mise à jour.
La deuxième fonction exécute une sélection avec la requête ($ sql) commande La requête de mise à jour utilise:
$stmt = $db->prepare($sql);
$stmt->execute(arraywithvalues);
séparemment, les deux fonctions fonctionnent parfaitement, mais pas quand ils sont appelés à la fois en d'autres termes, au moment où la deuxième fonction doit être exécutée, elle échouera. Si je commente la première fonction, elle s'exécutera correctement?
EDIT
La mise à jour requête
$tt = time() - 3600;
$w =array(NULL, NULL, $passw_new, $passw_key_new, $user_id);
$sql ="UPDATE table SET new_passw_requested =?";
$sql .=" WHERE passw_key_new='b02cdf33e46923de5a097c594e846764'";
$sql .=" AND UNIX_TIMESTAMP(new_passw_requested) >= $tt";
$sql .= " AND id=?";
Les fonctions réelles sont. 1) can_reset_passw() qui exécute une requête select, 2) reset_passw() qui effectue une sélection puis une mise à jour. Les deux fonctions fonctionnent bien indépendamment comme je l'ai dit ci-dessus.
erreur: Trouvé un
SELECT * FROM table WHERE id = :id AND actief = :actief
Array ([0] => SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens)
donc quelque chose de jouer avec ce
I try'd réglage $ stmt = NULL pour effacer les ressources, mais que le travail de diddn't. D'une certaine façon les jetons du premier select sont encore en mémoire, je pense
Que pourrais-je faire pour résoudre ce problème?
résolu
La dernière erreur m'a mis sur le droit chemin. La classe dbabstraction tenait de conditions dans la mémoire
grâce, Richard
Quoi de neuf le problème que vous voyez? Quel genre de requêtes sont exécutées par oyu? Etc. S'il vous plaît partager quelques plus de détails. – johannes
Pourriez-vous s'il vous plaît fournir un peu plus de code? En particulier la partie entre 'if ($ rows)' et la seconde '$ stmt = $ db-> prepare (...' semble être importante :-) –
Es-tu en train de calculer l'horodatage deux fois? (Avant chaque déclaration?) Peut-être que le temps passe, l'horodatage change? –