|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Étudiant Inscription : avril 2011 Messages : 19 ![]() |
Bonjour,
J'utilise une table temporaire, dans un script php, mais lors de l'exécution, j'ai le message : Error: Table 'xxx' doesn't exist temporaire Pourtant dans mon code j'ai la connexion à la Base de Données, le code ci-dessous, et après l'instruction mysql_close(); De plus j'ai testé l'instruction de création de table temporaire dans phpmyadmin et je n'ai pas d'erreur. Voyez-vous pourquoi j'ai cette erreur et comment la corriger ? Merci d'avance. Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 848 ![]() |
salut,
déjà tu utilise des variable comme $reser dont tu as aucune garantie du contenu (booléen en cas d'erreur, ressource en cas de succès de la requête)... ensuite vaut mieux éviter de ne pas traiter immédiatement le résultat d'une requête avant d'en lancer une autre... je suis pas sur que le mécanisme de bufferisation des résultat aime bien ça, même si tu configure le connecteur mysql de php que tu utilises en mode multi-requête... en gros: tu lances une requête, tu exploite juste après les résultats... sinon ça a plus que de grandes chances de faire ce que tu obtiens... commence donc par rectifier ça ![]() ensuite utilise plutot mysqli ou pdo comme connecteur mysql, le connecteur mysql n'est plus maintenu actuellement et risque de disparaitre des futures versions... quand tu veux faire un truc comme ça il peut être plus simple de passer par une procédure stockée pour effectuer tes différentes tâche côté mysql et n'avoir qu'un seul appel à faire côté php pour obtenir les résultats... ça te donne déjà des idées
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
10
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : janvier 2009 Messages : 36 ![]() |
Fais gaffe à une chose : les tables temporaires sont détruites dès la fin de la connexion...
Deux trois conseils: utilise PDO ou mysqli déjà comme l'a dit ericdu69. Tu te casseras moins la tête avec la sytntaxe et aussi tu pourra bénéficier des fonctions de protections des variables d'entrées (prepareStatement, quote() ...) Aussi entoure toujours ta requête d'un try -> catch pour gérer les erreurs. En effet tu ne dois pas "fetcher" un resultat si tu n'est pas sur que c'est un objet fetchable (si ta requête échoue, il va tenter quand même le while sur un truc bidon donc c'est pourri Pour te problème de temporary table, je sais pas si c'est là tout ton code, ou si tu effectue en close entre temps, mais sache que le close va dégager toutes les tables temporaires créées dans cette connexion... Je vois pas d'ailleurs l'intérêt de créer ici une table temporaire. si c'est pour des besoins de performance, tu peux utiliser l'engine MEMORY et faire une table normale, (oublie pas de la dropper à la fin) Sinon tu peux également créer une VUE peut-être est ce même la meilleur solution, après je sais pas ce que tu veux faire avec Guillaume |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com