Soucis avec procédure stockée (newbie) [MySql] - SQL/NoSQL - Programmation
Marsh Posté le 05-11-2007 à 15:28:58
tu dois vraisemblablement avoir un problème de délimiteur, voir là:
http://dev.mysql.com/doc/refman/5. [...] edure.html
Marsh Posté le 05-11-2007 à 17:15:33
Comme ma grand-mère me dit toujours "les étoiles c'est dans le ciel et pas ailleurs".
BORDEL DE MERDE UNE PS C'EST COMPILE, COMMENT VEUT TU QU'IL ARRIVE A COMPILER SI TU LUI DIS PAS QUELS CHAMPS TU VEUX SELECTIONNER
Marsh Posté le 05-11-2007 à 18:11:05
MagicBuzz a écrit : Comme ma grand-mère me dit toujours "les étoiles c'est dans le ciel et pas ailleurs". |
Evite de me gueuler dessus ...
Si tu veux pas me répondre tu passes ton chemin ce sera mieux pour tout le monde, bien compris ?
anapajari >> ouaip j'ai lu tout ca mais ca coince tout pareil, je vais encore regarder
J'en ai pas besoin des PS c'est simplement pour ma culture
Marsh Posté le 05-11-2007 à 18:27:29
tu feras gaffe, il t'a répondu
et en plus c'est vraisemblablement la cause de l'erreur également
Marsh Posté le 05-11-2007 à 18:54:22
anapajari a écrit : tu feras gaffe, il t'a répondu |
parler gentillement c'est tj mieux
je prefere qu'il ne me réponde pas point final
Marsh Posté le 05-11-2007 à 19:17:35
En version plus gentille :
Code :
|
Le * est générique, et ne donne aucune information de nombre, taille ou types des champs.
Même si éventuellement ton erreur ne vient pas de là, de toute façon ça coince ici : impossible de compiler un truc si on sait pas ce qu'il y a dedans.
Le * est à banir de tout code. C'est sympa pour tester en vitesse un truc dans phpmyadmin, mais dans du code, on doit systématiquement voir les champs énumérés un à un, proprement.
Que ce passe-t-il sinon lorsque tu ajoutes un champ ? En supprime un ? Que tu modifies leur ordre ? Leur type ? Leur nom ?
En gros, tu es sur le parking de carrefour, tu donnes les clés de ta voiture à un inconnu, et tu lui dit "tiens, je te donne ma voiture". Il est bien avancé le gars...
Marsh Posté le 05-11-2007 à 19:19:56
PS : Et ta syntaxe (outre le *), même si éventuellement elle marche, est à éviter comme la peste. Regarde dans la doc de MySQL comment mettre en place une valeur de retour de type "table".
Du coup, ce ne sera plus une procédure, mais une fonction.
Là, sémentiquement, ça veut rien dire (normalement, ça doit rien retourner, même si sous SQL Server par exemple, ça retourne quand même quelquechose), et si demain d'as du code autour, il sera impossible de comprendre d'où vient le résultat.
Marsh Posté le 05-11-2007 à 20:10:16
J'ai mis SELECT * la pour aller plus vite, je ne mets jamais d'etoile dans une requete SQL.
Pour ma PS, meme si je spécifie le nom du champs ca passe pas.
Marsh Posté le 06-11-2007 à 00:02:39
ben poste ton code complet alors. Parceque ta ligne 3 ici...
ps : et tu exécutes ça dans quoi ? (parcequ'on voit tellement de trucs...)
ps² : si tu mets un "AS" ou un "IS" avant/à la place de BEGIN, ça donne quoi ?
Marsh Posté le 06-11-2007 à 14:29:02
Voici mon erreur :
Code :
|
Avec le code :
Code :
|
Marsh Posté le 06-11-2007 à 14:35:17
le $sql qui traine me laisse craindre le pire...
Serait-ce un bout de requête que tu cherches à executer en php?
Si oui:
- dans quel but se retrouve-t-il dans du php?
- de mémoire, je crois qu'il faut passer par mysqli pour pouvoir utiliser les proc stockés
Dernière question: quelle est ta version de mysql? ( car les procs sont dispos uniquement à partir de la 5)
Marsh Posté le 06-11-2007 à 14:41:32
anapajari a écrit : le $sql qui traine me laisse craindre le pire... |
J'essaye via PHP car mysql query ou phpmyadmin passe pas
version 5 de mysql
Marsh Posté le 06-11-2007 à 15:07:54
delimiter, à mon avis c'est pas du transact sql, mais une instruction du requêteur. donc pas de ça dans ton php.
Marsh Posté le 06-11-2007 à 16:56:52
pas plutot
nycius a écrit :
|
Marsh Posté le 01-11-2007 à 14:24:10
Salut,
J'essaye de faire une procédure stockée simple en mysql :
Seulement ca passe pas, j'ai une erreur 1064 ligne 3.
j'ai pas du faire quelque chose de correct mais je vois pas ou, j'ai suivi un tuto pourtant.
Si qqun peut me filer un coup de main