Newsgroup: it.comp.www.php
Titolo: versione PHP per stored procedure MySQL5

ciao a tutti,
c'è qualcuno che, gentilmente, mi conferma ( o meno, chiaro...;) che per 
richiamare da PHP le stored procedure di MySQL 5 è necessario utilizzare PHP 
5.x, l'estensione mysqli, e le relative funzioni ?
grazie
Mario
_________________________
WEB: 
www.mario-online.com
________________________________ 

 5.x, l'estensione mysqli, e le relative funzioni ?
Mi sembra di no, alla fine le SP sono a livello di query, ma aspetta 
pareri piů autorevoli.
	Francesco

Francesco F wrote:

io confermo il tuo no.. sono comunque accessibili..
-- 
www.iuz-lab.info

"iuz" <us...@host.network> ha scritto nel messaggio 
news:epa9l0$fl1$4...@aioe.org...

uh, ok qualche link / esempio funzionante (PHP 4.3.10 e MySQL 5.0)? questo 
sotto č il mio codice
______________________________________________
PHP:
$link  = mysql_connect(DB_HOST.":".DB_PORT, DB_USER, DB_PW)
    or die("Could not connect:" . mysql_error());
mysql_select_db(DB)
    or die("Could not connect:" . mysql_error());
 $query = "call 
sp_contattoWeb('".$_SESSION['sess_kcliente']."','$kContatto', '$cognome', 
'$nome', '$posizione', '$telefono', '$cellulare', '$email','$note', @out)";
 $result = mysql_query($query)
  or die("<br>KO: $query<br>" . mysql_error() . "<br>");
______________________________________________
______________________________________________
MySQL stored procedure:
CREATE PROCEDURE sp_contattoWeb(
  IN in_kCliente VARCHAR(10),
  IN in_kContatto INTEGER,
  IN in_cognome VARCHAR(40),
  IN in_nomepers VARCHAR(40),
  IN in_posizione VARCHAR(40),
  IN in_recapitoTel VARCHAR(100),
  IN in_recapitoCell VARCHAR(100),
  IN in_recapitoEmail VARCHAR(100),
  IN in_note TEXT,
  OUT errMsg VARCHAR(80))
# UAData datetime
# dataCre datetime
LANGUAGE SQL
NOT DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY INVOKER
COMMENT 'gestione contatti provienti dal sito web. Ver. 0.01'
BEGIN
  # basic error handling if table or column doesn't exist #
  DECLARE unknown_column CONDITION FOR SQLSTATE '42S22';
  DECLARE unknown_table CONDITION FOR SQLSTATE '42S02';
  # the specific handlers #
  DECLARE EXIT HANDLER FOR unknown_column
          SET errMsg = 'Errore: verifica Colonna.';
  DECLARE EXIT HANDLER FOR unknown_table
          SET errMsg = 'Errore: verifica Tabella.';
  SET errMsg = '';
  # Creo la query #
  SET @query = '
 INSERT INTO tblWebTmpContatti
 (kCliente, kcontatto, cognome, nomepers, posizione, recapitoTel, 
recapitoCEll, recapitoEmail, note, UAData, dataCre)
 VALUES
 (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), NOW())
  ';
  PREPARE qry FROM @query;
  # EXECUTE only works with #
  # user variables in this context #
  SET @kCliente = in_kCliente;
  SET @kContatto = in_kContatto;
  SET @cognome = in_cognome;
  SET @nomepers = in_nomepers;
  SET @posizione = in_posizione;
  SET @recapitoTel = in_recapitoTel;
  SET @recapitoCell = in_recapitoCell;
  SET @recapitoEmail = in_recapitoEmail;
  SET @note = in_note;
  EXECUTE qry USING @kCliente, @kContatto, @cognome, @nomepers, @posizione, 
@recapitoTel, @recapitoCell, @recapitoEmail, @note;
END
______________________________________________
questo l'errore che ottengo
______________________________________________
PROCEDURE dedalo.sp_contattoWeb can't return a result set in the given 
context
______________________________________________
ho provato ad inserire diversi parametri nella mysql_connect ma non mi 
cambia nulla...


 sotto č il mio codice
[..]
spostati su un NG per mysql o mysql e PHP.. qui siamo abbastanza OT..
-- 
www.iuz-lab.info

 spostati su un NG per mysql o mysql e PHP.. qui siamo abbastanza OT..
dici? azz siamo così stringenti ? vedo molti post con richieste SQL ( e non 
parlo solo di interazione com MySQL storicamente "cugino" di PHP ), questo 
mio mi sembra di interesse generale per chi usa PHP, a scanso di flame mi 
ritiro in buon ordine e torno a cercare su google (oppps il primo risultato 
è un mio articoletto: 
http://www.google.it/search?sourceid=navclient&aq=t&hl=it&ie=UTF-8&rlz=1T4GGLJ_itIT177&q=stored+procedure+mysql+php
 
vabbè.....;)
ah ecco, giusto per fare il pistino metto qua sotto quello che è considerato 
OT:
Sono al di fuori degli argomenti pertinenti al newsgroup:
* articoli relativi alla compravendita di beni e servizi illegali,
inclusi tutti i articoli che in qualsiasi modo riguardano la pirateria
informatica.
* spamming.
* flames, provocazioni e offese personali dirette a qualsiasi
partecipante.
* tutte le discussioni non costruttive sul confronto fra varie
piattaforme e vari linguaggi, portate avanti con il solo scopo di
litigare o come "guerre di religione".
* articoli pubblicitari.
* post in HTML o comunque diversi dal puro ASCII.
* post con attach binari
* i followup con prefisso R: anziché Re: e tutte i articoli con
violazioni alle RFC inerenti Usenet e la posta elettronica.
peace and love
ciao


 peace and love
Per concludere, continuando a vivere in un'isola felice di pace e bene 
fratelli :-) anche a me interesserebbe trovare la risposta al problema 
di Mario.
--
rob4you

 [..]
non fraintendere troppo.. non hai sbagliato.. ma ti ho detto di spostarti
per non confondere troppo 'la memoria di usenet'.. nel senso che, quando
che sia, se qualcuno cerchera' risposte riguardo al problema che hai posto
le possa trovare nei NG che corrispondono il piu' possibile al tema in
questione.. 
in questo caso all'inizio era un quesito riguardante php verso mySQL ma, che
adesso, sembra essersi spostato abbastanza verso mySQL da giustificare un
cambio di NG (e' anche molto probabile che troverai risposte piu'
esaurienti)..
-- 
www.iuz-lab.info

"iuz" <us...@host.network> ha scritto nel messaggio 
news:epagse$120$1...@aioe.org...

uhmm...scommettiamo che se vado su un ng databased (sic!) o MySQL based a 
fare questa stessa domanda mi ributtano subito sui ng di PHP ? e in quel 
caso si che non avrei nulla da obiettare perche io parlo di PHP ! ma scusa 
dici si č spostato su tematiche MySQL solo perchč ho postato il codice di 
una stored? i miei problemi non sono nella stored ma nel PHP, per questo son 
qua...;)
cmq  non v'č problema ... tranne quello citato nel mio post originale: come 
azz faccio a chiamare una SP da PHP 4 ?!?...


 come azz faccio a chiamare una SP da PHP 4 ?!?...
[..]
guarda che la stai chiamando.. solo che non puo' funzionare (non l'ho letta
ma cosi' pare..)..
[quoting 
http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html
]
Statements that return a result set cannot be used within a stored function.
This includes SELECT  statements that do not use INTO to fetch column
values into variables, SHOW  statements, and other statements such as
EXPLAIN. For statements that can be determined at function definition time
to return a result set, a Not allowed to return a result set from a
function error occurs (ER_SP_NO_RETSET_IN_FUNC). For statements that can be
determined only at runtime to return a result set, a PROCEDURE %s can't
return a result set in the given context error occurs (ER_SP_BADSELECT).
[/quoting]
-- 
www.iuz-lab.info

 ha scritto nel messaggio 
news:pan.2007.01.25....@tiscali.it...

ahh finalmente una risposta...;)..avevo già provato anch'io modificando i 
parametri della mysql_connect() ma non cambia nulla, con i motori mi son 
arenato qua:
http://drupal.org/node/48195
ciao
Mario Protto
_________________________
WEB: 
www.mario-online.com
CEL: 
+39 320 7041973
TEL: 
+39 0161 1850094
FAX: 
+39 0161 1850775
ICQ: 152092918
Skype: mario-online
GTalk: 
mario....@gmail.com
________________________________

 [/quoting]
purtroppo la mia stored è di INSERT (per quello avevo messo il codice...;), 
cmq grazie per l'aiuto, il fatto è che non è sicuramente un dramma passare a 
PHP5 anzi, però sai cosi si deve scomodare il sistemista, verificare 
sicurezza etc etc etc
grazie ancora


opps mi è scappata la signature...abbiate pietà...;)


 spostati su un NG per mysql o mysql e PHP.. qui siamo abbastanza OT..
direi proprio di no, visto che e' una richiesta che riguarda php

 5.x, l'estensione mysqli, e le relative funzioni ?
domani controllo. nel caso se passi a php5 usa pdo e non mysqli

T_PAAMAYIM_NEKUDOTAYM wrote:

a me pare un problema che riguarda mySQL..
come riportato dal manuale nel punto che ho citato l'errore e' in un uso
improprio di una stored procedure..
come ho gia' detto, all'inizio riguardava php verso mySQL.. dopo, IMHO, si
e' spostata verso mySQL..
-- 
www.iuz-lab.info

 domani controllo. nel caso se passi a php5 usa pdo e non mysqli
interessante ... mi ricorda tanto la DBI di Perl (opsss non vorrei uscire di 
nuovo dal tema....;)...leggo che č inclusa dalla 5.1, esplorerň...grazie
ciao
