2009-09-24 6 views
1

Je n'arrive pas à essayer d'utiliser $ stmt-> store_result() après l'exécution d'une instruction préparée. Le manuel dit "Transfère un ensemble de résultats à partir d'une déclaration préparée", mais où?Aide avec mysqli_stmt_store_result()

Je voudrais idéalement l'utiliser, tout est bien un tampon dans la mémoire, comme mysqli-> query() renvoie.

Les exemples de documentation php donnent l'impression que la seule bonne raison d'utiliser store_result() est d'obtenir le nombre de lignes.

Idéalement, j'ai besoin de quelque chose qui peut obtenir l'ensemble complet des résultats à partir d'une instruction préparée et faire quelque chose comme fetch_rows dessus. J'ai FAIT pirater la classe mysqli_stmt en l'étendant et en ajoutant une fonction fetch_assoc en utilisant des méthodes arrières, mais je voudrais vraiment supprimer ce hack si je peux mettre toutes mes données en mémoire.

Donc, ma petite question est, je sais ce que store_result() fait, mais comment l'UTILISER?

(Et honnêtement, je n'utiliserais même pas mysqli-> prepare() pour obtenir un stmt, si ce n'était pas si utile pour prévenir les attaques par injection sql, stériliser les variables, et rendre mon sql si joli un joli avec tous ces points d'interrogation.)

Merci pour votre aide!

+0

Sooo .. mon stmt piraté à fetch_assoc() a été doublé en fait mon temps de charge par rapport à vsprintf() 'ing mon sql et juste le transmettre mysqli-> query() pour obtenir un ensemble de résultats normal. Donc je reste avec ça pour le moment. Dommage vraiment, j'aimerais que cela fonctionne avec des fonctions intégrées. – nolanpro

Répondre

0

Il peut être utile de jeter un oeil à la façon dont il est fait dans Zend_Db

+0

Super ressource! Je vais devoir en penser une. J'espère trouver une réponse là-dedans. – nolanpro