ini_set("display_errors","1"); require_once('path-to/Doctrine-0.10.3/Doctrine-0.10.3/lib/Doctrine.php'); Doctrine::debug(true); spl_autoload_register(array('Doctrine', 'autoload')); Doctrine_Manager::getInstance()->setAttribute('model_loading', 'conservative'); // 'conservative' 'aggressive' Doctrine::loadModels('news'); $dsn = 'mysql:dbname=my_test;host=127.0.0.1'; $user = 'my_test'; $password = 'password'; try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } $conn = Doctrine_Manager::getInstance()->openConnection($dbh);
// insert $c[0]='en_US'; $q = new Doctrine_Query(); $r = $q->from('SysLang sl') ->where('sl.id = ?') ->fetchArray($c); $num=$q->count($c); if(1>$num || null==$num){ $sl = new SysLang(); $sl->id=$c[0]; $sl->active='1'; $sl->updated=date(c); $sl->updater='Teixi'; $sl->save(); } // 03 Retrieve rows from SYS_LANG $q = new Doctrine_Query (); $result = $q ->from('SysLang sl')->fetchArray(); echo "<br />03 Results SYS_LANG:<br />"; foreach($result as $row) { foreach($row as $column) { echo $column." | "; } echo "<br />"; } // 04 Insert language definitions in TRANS_LANG // catalan $c[0]='ca_ES'; $c[1]='ca_ES'; $q = new Doctrine_Query (); $r = $q ->from('TranslLang tl') ->where(' tl.id_lang = ? AND tl.id_trad = ? ') ->fetchArray($c); $num=$q->count($c); if(1>$num || null==$num){ $tl = new TranslLang(); $tl->id_lang=$c[0]; $tl->id_trad=$c[1]; $tl->description='Català'; $tl->save(); } // 05 Retrieve rows from TRANS_LANG $q = new Doctrine_Query (); $result = $q ->from('TranslLang tl')->fetchArray(); echo "<br />05 Results TRANSL_LANG:<br />"; foreach($result as $row) { foreach($row as $column) { echo $column." | "; } echo "<br />"; } // 06 Add a row in CONT_NEWS and each language content as three rows in TRANSL_NEWS $c[0]='ca_ES'; $c[1]='1'; $c[2]='Primera Notícia de Prova'; $q = new Doctrine_Query (); $r = $q ->from('TranslNews tl') ->where(' tl.id_lang = ? AND tl.id_news = ? AND tl.title = ? ') ->fetchArray($c); $num=$q->count($c); if(1>$num || null==$num){ $cn = new ContNews(); $cn->active='1'; $cn->updated=$cn->created=date(c); $cn->updater=$cn->creator='Teixi'; $cn->save(); $id_n=$cn->get('id'); // Insert Catalan $tn = new TranslNews(); $tn->id_news=$id_n; $tn->id_lang='ca_ES'; $tn->title='Primera Notícia de Prova'; $tn->body='Aquest és el contingut de la Primera notícia de Prova'; $tn->save(); // Insert Spanish $tn = new TranslNews(); $tn->id_news=$id_n; $tn->id_lang='es_ES'; $tn->title='Primera Notícia de Prueba'; $tn->body='Este es el contenido de la primera notícia de Prueba'; $tn->save(); } // 08 Test Delete a row in TRANSL_NEWS $q = new Doctrine_Query(); $d[0]='1'; $d[1]='en_US'; $r = $q->delete('tl.*') ->from('TranslNews tl') ->where('tl.id_news = ? AND tl.id_lang = ? ') ->execute($d); echo "<br />08 deleted=$r on TranslNews where id_news=$d[0] and id_lang=$d[1] <br />"; // retrieve view after delete $q = new Doctrine_Query (); $result = $q ->from('ViewNews vn')->fetchArray(); echo "<br />08 Results VIEW_NEWS:<br />"; foreach($result as $row) { foreach($row as $column) { echo $column." | "; } echo "<br />"; } // 10 Update en_US $u[0]='Updated: First News of Test ! '.date("s"); $u[1]='Updated: This is the content of the first news for testing ! '.date("s"); $u[2]='en_US'; $u[3]='1'; $k= new Doctrine_Query(); $k->update('TranslNews tl') ->set('tl.title', '?') ->set('tl.body', '?') ->where(' tl.id_lang = ? AND tl.id_news = ? '); $z=$k->execute($u); // 11 Retrieve Partial Data $q = new Doctrine_Query (); $result = $q ->from('ViewNews vn')->fetchArray(); echo "<br />11 Results VIEW_NEWS:<br />"; foreach($result as $row) { echo $row[title]." :: ".$row[body]; echo "<br />"; } // 12 Raw Sql $q = new Doctrine_RawSql(); $q->select('{v.*}') ->from('VIEW_NEWS v') ->addComponent('v', 'ViewNews v'); $s=$q->getSql(); echo"<br />12 raw sql query= $s <br />"; $result = $q->execute(); echo "<br />12 Results Raw SQL: <br />"; foreach($result as $row) { foreach($row as $column) { echo $column." | "; } echo "<br />"; }