<?php
class Plugin_Database {
public $aQueries;
private $rConnect;
public $aBindsWhat, $aBindsOn;
public function connect($sUser, $sPassword, $sDatabase, $sHost='localhost')
{
if(!$this->rConnect)
{
throw new Syd_Exception('Can not connect to database.');
}
{
throw new Syd_Exception('Can't select database.');
}
}
public function getHtmlQuerys()
{
$sHtml = '
<table style="border: 1px solid black; border-spacing: 0; border-collapse: collapse;">
<tr>
<td style="border: 1px solid black;">Nr ('.count($this->aQueries).')</td> <td style="border: 1px solid black;">Query</td>
<td style="border: 1px solid black;">Num rows</td>
<td style="border: 1px solid black;">Affected rows</td>
</tr>';
foreach($this->aQueries AS $key => $value)
{
$sHtml .= '
<tr>
<td style="border: 1px solid black;">'.($key+1).'</td>
<td style="border: 1px solid black;">'.(empty($value['error'])?
nl2br($value['sql']):'<span style="color: red;">'.nl2br($value['error']).'</span>').'</td> <td style="border: 1px solid black;">'.$value['num'].'</td>
<td style="border: 1px solid black;">'.$value['affected'].'</td>
</tr>';
}
$sHtml .= '</table>';
return $sHtml;
}
public function query($sSql)
{
{
$sError = 'Error in query: "'.$sSql.'"
"'.$sError.'"';
}
$this->aQueries[] = array('sql' => $sSql, 'num' => $iNum, 'affected' => $iAffected, 'error' => $sError); $this->aBindsWhat = array(); $this->aBindsOn = array(); return $rQuery;
}
public function Execute($sSql)
{
$sSql = str_replace('
R:', $this->oConfig->get('database', 'prefix'), $sSql); $sSql = str_replace($this->aBindsWhat, $this->aBindsOn, $sSql); return $this->query($sSql);
}
public function assignInt($sWhat, $sOn)
{
$this->aBindsWhat[] = ':'.$sWhat.':';
$this->aBindsOn[] = (int)$sOn;
}
public function assignString($sWhat, $sOn)
{
$this->aBindsWhat[] = ':'.$sWhat.':';
$this->aBindsOn[] = (string)('''.$sOn.''');
}
public function getAll($sSql)
{
$rQuery = $this->Execute($sSql);
{
$aFields_[] = $aFields;
}
return $aFields_;
}
public function getRow($sSql)
{
$rQuery = $this->Execute($sSql.' LIMIT 1');
{
return $aFields;
} else {
}
}
public function Insert($sTable, $aRows)
{
foreach($aRows AS $key => $value)
{
$aValues[] = $key;
$aInserts[] = $value;
}
return $this->Execute('INSERT INTO '.$sTable.' ( '.(implode(',', $aValues)).' ) VALUES ( '.(implode(',', $aInserts)).' )'); }
public function Update($sTable, $aRows, $sWhere='')
{
$sSql = 'UPDATE '.$sTable;
foreach($aRows AS $key => $value)
{
$sSql_[] = '`'.$key.'`='.$value;
}
$sSql .= ' SET '.implode(',', $sSql_); {
$sSql .= ' WHERE '.$sWhere;
}
return $this->Execute($sSql);
}
public function Delete($sTable, $sWhere='')
{
$sSql = 'DELETE FROM '.$sTable;
{
$sSql .= ' WHERE '.$sWhere;
}
return $this->Execute($sSql);
}
?>
Prosta przykładowa klasa ;p