Chirurgia spinală minim invazivă
Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical. Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale. www.neurohope.ro |
Apelare Procedura Stocata din PHP
Last Updated: Jul 25 2014 17:57, Started by
ZMeulIahim
, Jul 24 2014 16:37
·
0
#1
Posted 24 July 2014 - 16:37
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
Posted 24 July 2014 - 16:52
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
Posted 24 July 2014 - 18:24
ZMeulIahim, on 24 iulie 2014 - 16:37, said:
A mai intalnit cineva problema asta? 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
Posted 25 July 2014 - 10:56
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. OriginalCopy, 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
Posted 25 July 2014 - 14:51
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
Posted 25 July 2014 - 16:37
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
Posted 25 July 2014 - 17:43
Pune in log sa-ti arate toate interogarile primite. (parca suporta si mysql asa ceva)
Poate sare vreo problema in ochi. |
#8
Posted 25 July 2014 - 17:54
sergiu_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? 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. ZMeulIahim, 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. |
#9
Posted 25 July 2014 - 17:57
ZMeulIahim, 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. ZMeulIahim, 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 ZMeulIahim, on 25 iulie 2014 - 16:37, said:
nu stiu ce nu ati inteles voi ZMeulIahim, 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. ZMeulIahim, on 25 iulie 2014 - 16:37, said:
V-am aratat mai sus cum fac apelul...si v-am spus simptomele ZMeulIahim, 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. Edited by neagu_laurentiu, 25 July 2014 - 18:13. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users