Jump to content
php.lv forumi

meginajums db klasei


Recommended Posts

* 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 by v3rb0
Link to post
Share on other sites

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 by codez
Link to post
Share on other sites

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();

Link to post
Share on other sites

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 by tomaac
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...