Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

Apelare Procedura Stocata din PHP

- - - - -
  • Please log in to reply
8 replies to this topic

#1
ZMeulIahim

ZMeulIahim

    Junior Member

  • Grup: Members
  • Posts: 51
  • Înscris: 07.04.2006
Salut,

Am intampinat recent o problema care m-a cam bagat in ceata.
Lucrez la o aplicatie ceva mai maricica (PHP + MySQL) si m-am gandit sa folosesc proceduri stocate.
Am creat o procedura stocata, functioneaza bine...am apelato din PHP si afiseaza ce trebuie.
Toate bune si frumoase pana aici.

Dupa ce am apelat procedura respectiva in PHP, mai jos mai am cateva query-uri simple (ex: select nume from employees where empl_id=1), care nu mai functioneaza.
Deci tot ce e query si e apelat dupa procedura stocata, nu mai afiseaza nimic, dar nici nu da eroare.

Ce e drept nu am mai folosit pana acum proceduri stocate, cel putin nu in PHP/MySQL.

A mai intalnit cineva problema asta?

Aveti idee care ar fi cauza?

Multumesc anticipat.

Mihai

Edited by ZMeulIahim, 24 July 2014 - 16:39.


#2
sergiu_spooky

sergiu_spooky

    Senior Member

  • Grup: Senior Members
  • Posts: 3,738
  • Înscris: 23.06.2006
Arata-ne cod, altfel putem doar banui care e problema.
Daca-ti configurezi cum trebuie mediul de dezvoltare (error reporting) poate te lamuresti si singur...
Also incearca sa nu folosesti proceduri stocate, da asta asa, ca si sugestie. Din experienta iti spun ca pe viitor e mai greu sa modifici/repari o aplicatie care se bazeaza pe proceduri stocate pentru logica.
Ca ma gandesc ca nu incapsulezi cate-un query in procedura (GET_WHATEVER_BY_ID, UPDATE_WHATEVER, INSERT_WHATEVER). Aia e munca in plus fara niciun beneficiu.

#3
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View PostZMeulIahim, on 24 iulie 2014 - 16:37, said:

A mai intalnit cineva problema asta?
Nu a mai intalnit nimeni problema asta, deoarece orice om sanatos la cap NU pune bucati, bucatele sau bucatici de logica a aplicatiei in baza de date.

Poti sa te urci pe pereti, sa urli pe la colturi ca as fi eu un nebun, pur si simplu NU se face asa ceva.

Documenteaza-te.

#4
ZMeulIahim

ZMeulIahim

    Junior Member

  • Grup: Members
  • Posts: 51
  • Înscris: 07.04.2006
Deci am o procedura stocata de genul:

DELIMITER $$
CREATE PROCEDURE `SelectEmplSupList`(in emplid int)
BEGIN
select
...........
from
EMPLOYEES e,
......
where
.......
order by 1 asc;
END $$
DELIMITER ;




apelul in php este de genul:


<tbody>
	 <?php
$q_sup = mysql_query("CALL SelectEmplSupList (id)");
$i=0;
while ($d_sup=mysql_fetch_assoc($q_sup)){
?>
		 <tr>
			 <td width="20" align="center">
			 <input type...>.... afisez rezultatele....</td>
		 </tr>
	 <?php } ?>
	 </tbody>



problema e ca dupa ce se afiseaza rezultatele din CALL-ul de mai sus, in pagina mai am cateva query-uri mai mici care nu se mai afiseaza....iar error reportingul nu afiseaza nimic....mi-am dat seama ca e problema de la CALL pt ca am luat si am tot comentat cod sa vad de unde e buba....si s-a dovedit ca e de la procedura stocata.

Nu folosesc produri stocate decat in cazul in care am query-uri foarte mari...gen >100 linii de cod sau cu foarte multe join-uri.







View PostOriginalCopy, on 24 iulie 2014 - 18:24, said:

Nu a mai intalnit nimeni problema asta, deoarece orice om sanatos la cap NU pune bucati, bucatele sau bucatici de logica a aplicatiei in baza de date.
Poti sa te urci pe pereti, sa urli pe la colturi ca as fi eu un nebun, pur si simplu NU se face asa ceva.
Documenteaza-te.

@OriginalCopy : am query-uri care au si cate 300-400 linii de cod...vrei sa spui ca ar trebui sa pun tot codul asta in fisierul PHP?
Nu degeaba s-au inventat procedurile stocate.

Edited by ZMeulIahim, 25 July 2014 - 11:03.


#5
sergiu_spooky

sergiu_spooky

    Senior Member

  • Grup: Senior Members
  • Posts: 3,738
  • Înscris: 23.06.2006
Mda. Cand ai proceduri cu 3-400 de linii ceva clar nu faci bine.

Edit: nu te descurci sa faci debug la niste cod PHP si te astepti sa te descurci sa faci debug in 400 de linii de SQL?

#6
ZMeulIahim

ZMeulIahim

    Junior Member

  • Grup: Members
  • Posts: 51
  • Înscris: 07.04.2006
nu stiu ce nu ati inteles voi.... problema mea nu este procedura....procedurile functioneaza bine si sunt foarte bine optimizate...nu conteaza ca au 100 sau 1000 linii.
Ce fac eu nu e un site de prezentare sau un magazin online...Scriu cod SQL de ani de zile...stiu destul de bine sa-mi creez o procedura stocata sau un query bine optimizat.
Problema mea e ca nu am lucrat foarte mult cu PHP ( am lucrat mai mult cu Microsoft/Oracle).
Nu va faceti griji de codul SQL scris de mine...va garantez ca este corect.

Ce gresesc eu e undeva la apelul din PHP.
V-am aratat mai sus cum fac apelul...si v-am spus simptomele: Procedura afiseaza ce trebuie...ce e dupa ea nu se mai afiseaza... si nu e ca si cum ar da eroare...queri-urile din pagina apelate dupa procedura afiseaza no data found, dar in momentul in care comentez apelul procedurii, atunci afiseaza si restul queri-lor ce trebuie.

Daca aveti vreo idee despre ce v-am spus...bine, va sunt recunoscator si va apreciez sfaturile, daca nu, nu mai faceti spam degeaba va rog.

Multumesc anticipat.

#7
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
Pune in log sa-ti arate toate interogarile primite. (parca suporta si mysql asa ceva)
Poate sare vreo problema in ochi.

#8
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Posts: 27,268
  • Înscris: 10.08.2006

View Postsergiu_spooky, on 25 iulie 2014 - 14:51, said:

Mda. Cand ai proceduri cu 3-400 de linii ceva clar nu faci bine.

Edit: nu te descurci sa faci debug la niste cod PHP si te astepti sa te descurci sa faci debug in 400 de linii de SQL?
Categoric nu face ceva bine, dar e capos.

Probabil e din categoria celor care au programat zeci de ani gresit, sisteme mamut si greu mentenabile, si ii e greu sa se adapteze la tehnici de programare curata.

Nu avem decat sa speram ca-i va veni mintea la cap candva.

View PostZMeulIahim, on 25 iulie 2014 - 10:56, said:

@OriginalCopy : am query-uri care au si cate 300-400 linii de cod...vrei sa spui ca ar trebui sa pun tot codul asta in fisierul PHP?
Nu degeaba s-au inventat procedurile stocate.
Foloseste PDO sau macar mysqli, nu mysql, care e o extensie moarta.

#9
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,603
  • Înscris: 30.07.2003

View PostZMeulIahim, on 24 iulie 2014 - 16:37, said:

Dupa ce am apelat procedura respectiva in PHP, mai jos mai am cateva query-uri simple (ex: select nume from employees where empl_id=1), care nu mai functioneaza.
Aha. Codul cu pricina ?

View PostZMeulIahim, on 25 iulie 2014 - 10:56, said:

problema e ca dupa ce se afiseaza rezultatele din CALL-ul de mai sus, in pagina mai am cateva query-uri mai mici care nu se mai afiseaza
Asadar unde-i codul in cauza ?

View PostZMeulIahim, on 25 iulie 2014 - 16:37, said:

nu stiu ce nu ati inteles voi
Am inteles. Dar nu vad codul cu problema, pe de-a-ntregul.

View PostZMeulIahim, on 25 iulie 2014 - 10:56, said:

mi-am dat seama ca e problema de la CALL pt ca am luat si am tot comentat cod sa vad de unde e buba....si s-a dovedit ca e de la procedura stocata.
In MySQL nu ajunge nimic sa se execute, te-ai uitat cu un profiler ?

View PostZMeulIahim, on 25 iulie 2014 - 16:37, said:

V-am aratat mai sus cum fac apelul...si v-am spus  simptomele
N-ai aratat ce trebuie, doar ce ruleaza si afiseaza bine. Codul cu problema ? Unde-i codul ?

View PostZMeulIahim, on 25 iulie 2014 - 16:37, said:

Daca aveti vreo idee despre ce v-am spus...bine, va sunt recunoscator si va apreciez sfaturile, daca nu, nu mai faceti spam degeaba va rog.
Ne crezi tampiti ?

Edited by neagu_laurentiu, 25 July 2014 - 18:13.


Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate