- Home
- Categorie
- Coding e Sistemistica
- Hosting e Cloud
- tradurre query in procedura
-
tradurre query in procedura
ciao a tutti.ho installato wamp e ora sto usando il seguente manuale presente su html per fare una store procedures
"Vediamo adesso un esempio concreto di stored procedure:
CREATE PROCEDURE nomeProc (IN param1 INT, OUT param2 INT)
SELECT COUNT(*) INTO param2 FROM tabella
WHERE campo1 = param1;
Questa istruzione crea una procedura chiamata 'nomeProc' nel database in uso; la procedura usa un parametro in input e uno in output, entrambi interi, ed effettua il conteggio delle righe in tabella in cui il valore di campo1 corrisponde al primo parametro; il risultato della query viene memorizzato nel secondo parametro attraverso la clausola INTO.
Ecco come chiamare la procedura e visualizzare il risultato:
CALL nomeProc (5, @a);
SELECT @a;
Con l'istruzione CALL effettuiamo la chiamata della procedura (immaginando che il database attualmente in uso sia lo stesso a cui la procedura è associata), passando il valore 5 come parametro di input e la variabile @a come parametro di output, nel quale verrà memorizzato il risultato. La SELECT successiva visualizza il valore di tale variabile dopo l'esecuzione"e ora vorrei tradurre questa mi query in modo da fare una store procedures
$strSQL = "SELECT * FROM studenti WHERE username = '".$username."'";
$strSQL .= " AND password = MD5('".$password."')";
$result1 = mysql_query($strSQL);
$row1 = mysql_fetch_row($result1);come si traduce?no ho ben capito mi date una mano?
-
mmm
le storeprocedure come i trigger sono delle figate esagerate purtroppo però per molti ma non per tutti. la motivazione è che funzionano solo con mysql 5.
Prima di imbatterti in quest'avventura (di sicuro interesse ed utilità indipendentemente dalla possibilità di utilizzo) hai verificato la versione di mysql di cui disponi?come minimo viene qualcuno che mi smentisce dicendo "pirla anche su mysql3 funzionano le store procedure" e faccio la figura del pirla quadrato.
-
ciao e grazie per la risposta
ci ho la versione 5.0.25di mysql.
uso wampmi dai qualche indicazione su come fare?
ciao e grazie
-
CREATE PROCEDURE nomeProc (IN param1 INT, IN param2 CHAR, OUT param2 INT)
SELECT * FROM studenti WHERE username = param1 and password = param2;chiamata
CALL nomeProc (5, @a);
SELECT @a;prova in questo modo, l'ho fatta in base all'esempio riportato da te e devi verificare se è corretto char o ci và qualcosaltro
ovviamente devi passare la stringa già in md5
fammi sapere come va che sono curioso.
-
ciao, è sicuro che l store procedure valgono solo dalla versione 5 in poi.
lo provo ne l primo pomeriggio e poi ti faccio sapere.ciao
-
ciao sto provando adesso
ma la sintassi non è ben corretta, in param1 e 2 che ci devo mettere?devo lasciarli cosi?
la guida che seguo è su http://database.html.it/guide/lezione/2455/stored-procedures-e-stored-functions/
-
forse riesco a scriverla bene
ma sbaglio la CALL
-
allora la store procedure è questa
SELECT * FROM studenti
where [EMAIL="username=@username"]username=@username[/EMAIL] and password [EMAIL="=@pass"]=@pass[/EMAIL]e la chiamata nel codice è questa:
$strSQL="CALL rocco username = '".$username."' password = MD5('".$password."')";
credi che il problema sia nel passaggio dei parametri
che vedete di strano?