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 = 'my_test69';
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 />";
}