Robis Posted April 6, 2006 Report Share Posted April 6, 2006 Varbūt kāds zin labu un ātru DB klasi priekš MySQL uz php4? Link to comment Share on other sites More sharing options...
Delfins Posted April 6, 2006 Report Share Posted April 6, 2006 A kāpēc tieši klasi un Mysql? Es saprotu, ja tev vajadzētu wraperi un [pg/my]sql.. PS: pārdeklarē mysql f-jas iekš savas klases.. un viss Link to comment Share on other sites More sharing options...
v3rb0 Posted April 6, 2006 Report Share Posted April 6, 2006 VenMySQL pameklē. Link to comment Share on other sites More sharing options...
GedroX Posted April 6, 2006 Report Share Posted April 6, 2006 Vari mēģināt http://pear.php.net/package/DB_DataObject, bet man liekās, ka pašam kādu vienkāršāku klasi ir labāk uztaisīt. Man ir tādai pieeja, bet tas ir firmas intelektuālais īpašums... :) Link to comment Share on other sites More sharing options...
Delfins Posted April 6, 2006 Report Share Posted April 6, 2006 ak jēl, šitādu klasi uztaisīt ir 5 min /*abstract*/ class DB { function query(); function error(); function affected_rows(); function result_rows(); function sql_add_limit($sql); function ...(); function ...(); } tālāk ekstendējam.. var uzreiz teikt, ka ja gribēsi Oraklim rakstīt, tad dažas lietas vispār mainīsies... un netiek atbalstītas... katrā ziņā, vispirms ir jānodala, kādas DB suportēs, un tad jāizveido `kaut kas pa vidu`... lai vēlāk nav SQL jāpparaksta iekš aplikācijas.. Bet, vislabāk arī ir taisīt SQLBuilderi, un tās jau klases izmantos native PHP moduļu f-jas, lai caur N-wraperiem nav jālien.. tipa $ds1 = $queryObj->addDatasource('tableName'); $ds2 = $ds1->addDatasource('OtherTableName'); /* parent */ $ds2->addLink( 'pCatId', 'catid' ); /* this_field, parent_field */ Link to comment Share on other sites More sharing options...
Roze Posted April 6, 2006 Report Share Posted April 6, 2006 A jēga? Ja ir http://lv.php.net/manual/en/ref.pdo.php Link to comment Share on other sites More sharing options...
Delfins Posted April 6, 2006 Report Share Posted April 6, 2006 PDO neļauj man veidot SQL... SQL man pašam jāuzraksta... jo SQL/etc katram DB atšķirās... tas pats LIMIT - pgsql, mysql, oracle... nav viņiem vienādi.. pat nerunājot par oracle hack-triku (select *, rowid from (select...) ) Protams tas viss attiecās uz universāliem skriptiem/aplikācijām, kuru var uzstutēt uz jebkādas minētās DB... bet ja klients ir pieprasījis konkrētā `zvēra` izmantošanu, tad nu tur jau var tāpātās ar native f-jām... Link to comment Share on other sites More sharing options...
bubu Posted April 6, 2006 Report Share Posted April 6, 2006 Jautājumā netika prasīts vairāku db atbalsts. Tā ka ar parastām PDO klasēm pietiksies atliektiem galiem. Link to comment Share on other sites More sharing options...
KAC Posted April 6, 2006 Report Share Posted April 6, 2006 nu vispaar jau jaapsver jeega veidot taadu universaalu risinaajumu. jo kas der visam, neder nekam. shaa vai taa, ja mainaas dbvs, tad manupraat jaamaina aplikaacijas struktuura, jo katrai dbvs savi knifi Link to comment Share on other sites More sharing options...
Delfins Posted April 6, 2006 Report Share Posted April 6, 2006 1.) imho, blogs, forums, neizmanto ne tuvu visas dbvs iespējas, gy... es par šiem runāju. 2.) ja domā izmantot konkrētu DB, šadai klasei - 0(nulle) jēga Link to comment Share on other sites More sharing options...
eglitis Posted April 6, 2006 Report Share Posted April 6, 2006 2.) ja domā izmantot konkrētu DB, šadai klasei - 0(nulle) jēga Kā savādāk automatizēt tādas darbības, kā, piemēram, nevēlamo simbolu filtrēšanu? Link to comment Share on other sites More sharing options...
Delfins Posted April 6, 2006 Report Share Posted April 6, 2006 function plaintxtForDb() { ... } function htmlForDb() { ... } ... bet nu ne jau veselu klasi jāraksta.. ja vēlies, tad vari arī vienā klasē apvienot ;) kā kuram garšo.. Link to comment Share on other sites More sharing options...
eglitis Posted April 6, 2006 Report Share Posted April 6, 2006 kā kuram garšo.. Ļoti pareizi. Man tomēr labāk patīk lietot klasi, kuras funkcijās šīs darbības notiek automatizēti, daļēji konstruējot SQL, daļēji - nē, utml. Link to comment Share on other sites More sharing options...
ra001 Posted August 5, 2006 Report Share Posted August 5, 2006 Nezinu vai vēl vajag, bet man te viena, nē pareizāk sakot divas klasītes mētājas. To samērā viegli pārtaisīt arī uz citu DB. RaDB - konekcijas iterface uz DB RaQuery - SQL interface; class RaDB { var $ID; function connect($db_path, $s_user,$s_password, $dbname) { $this->ID = @mysql_connect($db_path, $s_user, $s_password); if ($this->ID) { @mysql_select_db($dbname); return $this->ID; } else { echo mysql_error(); return 0; } } function close() { $result = @mysql_close($this->ID); return $result; } } class RaQuery { var $result; var $row; var $SQL; var $trans; var $rowname; function query($sql="",$db = "") { global $DB; if ($db == "") $db = $DB; if ($sql != "") $this->SQL = $sql; $this->result = @mysql_query($this->SQL ); if (!$this->result) { echo mysql_error(); } return $this->result; } function execsql($db = "") { global $DB; if ($db == "") $db = $DB; $this->result = @mysql_query($this->trans ); if (!$this->result) { echo mysql_error(); } return $this->result; } function getrow() { $this->row = @mysql_fetch_array($this->result, MYSQL_ASSOC); return $this->row; } } //Izmantošana $DB->connect("www.somthing.lv", "username", "passvord" , "database"); if ($DB->ID == 0) exit("Bljins, nekas nesanaak"); $q = new RaQuery(); $q->query("select name from users"); while ($q->getrow()) { echo $q->row["name"]; } $newname = "maita"; $q->SQL = "update users set name = '$newname' where id = 1"; $q->query(); Link to comment Share on other sites More sharing options...
v3rb0 Posted August 5, 2006 Report Share Posted August 5, 2006 reusojamā klasē rakstīt iekšā echo mysql_error(); nav smuki, jo tām ir jāstrādā bez jebkādu kļūdu rādīšanas - visas kļūdas jāliek kādā properijā,masīvā,vai log failos, bet ja lietojot tiešām gribēs parādīt kopā ar htmlu arī erroru, tad lai prasa un rāda ar echo $instance -> gimmeLastError(); Link to comment Share on other sites More sharing options...
Recommended Posts