tomaac Posted January 31, 2011 Report Share Posted January 31, 2011 Mēģinājums uzrakstīt kaut kādu vienkāršu db klasi: http://paste.php.lv/a59adb402e57c5c855fbab6df61f683e?lang=php Lūdzu nokementējiet bez lieliem uzbraucieniem... Funcija validate_value tiek izmantota arī, rakstot selectus: $q = 'select * from table where id = '.$db->valdiate_value($id); Quote Link to comment Share on other sites More sharing options...
briedis Posted January 31, 2011 Report Share Posted January 31, 2011 Derētu tikt vaļā no visiem @ operatoriem. Quote Link to comment Share on other sites More sharing options...
tomaac Posted January 31, 2011 Author Report Share Posted January 31, 2011 A vai tad neder pielikt @ operatoru un pēc tam pārbaudīt if (mysql_error())...? Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted January 31, 2011 Report Share Posted January 31, 2011 (edited) * var $connection; - neizmanto 'var', tas izmirs kopā ar php4 un vecākām versijām. * ja jau esi saglabājis konekciju, tad padod to līdzi tām f-jām, kruām to var, piem mysql_real_escape_string() * saliec visām metodēm public/private * mysql_connect(DBHOST, DBUSER, DBPASS) - nav forši, ka instance ir atkarīga no kaut kādām konstantēm no malas. labāk tos DBHOST, DBUSER, DBPASS, DBNAME padod konstruktoram un pieglabā privātos properijos, vai uzreiz konstruktorā taisi konekciju. * metode log() - klasi parasti taisa ar domu ka varēs izmanto vairāk par vienā vietā. Ja nu projektā nav tādas log tabulas vai tā tiek izmantota kam citam? varbūt tāda tipa logošanu nemaz nevajag klasei, kas darbojās ar kveriju izpildīšanu. (kaut kāds developera režīms ar visu izpildīto kveriju logošanu failos gan varbūt noderētu) Edited January 31, 2011 by v3rb0 Quote Link to comment Share on other sites More sharing options...
spainis Posted January 31, 2011 Report Share Posted January 31, 2011 exception handlings sanāk lēnāks nekā pārbaudes veikšana iespējamai exception'a izmešanai Quote Link to comment Share on other sites More sharing options...
codez Posted January 31, 2011 Report Share Posted January 31, 2011 (edited) Neaptīk query building patterna izmantošana. Manuprāt labāk ir izmantot 2 dažādas klases: 1)db klasi, kura nodrošina ērtu darbu ar db, bet izmantojot pilnu SQL, nevis to būvējot. 2)Bet, ja negrib rakstīt kverijus, tad ORM. Par pašu klasi: 1)ja jau oop, tas nevis mysql_*, bet MySQLi 2)Nav paša pamata. Tas, ko no db klases vēlētos, ir vienkārš automatizēts interfeiss, kveriju rakstīšanai un parametru automātiskai apstrādei. Tas, ko vajadzētu veikt db klasei, ir $db= new DB(); $rows=$db->query("SELECT * FROM articles WHERE user_id=%s AND tag='%s'",$user_id,$tag)->rows(); echo $rows[2]['username']; Tas, ko vajadzētu veikt ORM klasei: $user=new ORM('user'); $user['username']='John'; $user['password']='qwe'; $user->insert(); //izpilda INSERT INTO user SET username='John', password='qwe' $user=new ORM('user'); $user->loadByPk($userid); //izpilda SELEC * FROM users WHERE id=$userid $user['about']='Nice guy'; $user->update();v//izpilda UPDATE user SET about='Nice guy' WHERE id=$userid Edited January 31, 2011 by codez Quote Link to comment Share on other sites More sharing options...
daGrevis Posted January 31, 2011 Report Share Posted January 31, 2011 Nekas neesmu sapratis ko datubāzes klasei īsti vajadzētu darīt. (( Būtu ļoti jauki, ja kāds Man paskaidrotu +/- tās izmantošanai. Es tācu tikpat labi varu izmantot... $mysqli->query(); Quote Link to comment Share on other sites More sharing options...
Kemito Posted February 1, 2011 Report Share Posted February 1, 2011 @ man sāk atgādināt Pascal, kur tiek izmantotas šīs norādes :/ Piekritīšu briedim, par @iem. Un eskeipoto stringu, vai tad nevaidzētu atgriezt, tā teikt pēdiņās t.i singlequote ? Quote Link to comment Share on other sites More sharing options...
tomaac Posted February 1, 2011 Author Report Share Posted February 1, 2011 (edited) Kā tikt vaļā no @? Tieksim, ja pie $result = mysql_query($sql); notiks sql kļūda, kā to apstrādāt? codez: Šoreiz atstāšu kalsi kā ir, bet nākamreiz mēģināšu tavu pieeju ar ORM. Šoreiz ir pārak mazs projekts, lai taisītu tadu... man liekas. Varbūt var kāds ieteikt - kādu ORM klasi vai linku, kur par to izlasīt? Edited February 1, 2011 by tomaac Quote Link to comment Share on other sites More sharing options...
rATRIJS Posted February 1, 2011 Report Share Posted February 1, 2011 Vienkaarshi izdzees @. Ja, piemeeram, mysql_query piedziivos kaadu probleemu, tad vinja atgrieziis false. Produkcijas videe taapat buus error_reporting(0). Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.