Example #1
0
 /**
  * Update table rows with the given data, optionally limited by using a filter
  *
  * Pass an array with a column name (the same as in $bind) and a PDO::PARAM_* constant as value
  * as fourth parameter $types to define a different type than string for a particular column.
  *
  * @param   string  $table
  * @param   array   $bind
  * @param   Filter  $filter
  * @param   array   $types
  *
  * @return  int             The number of affected rows
  */
 public function update($table, array $bind, Filter $filter = null, array $types = array())
 {
     $set = array();
     foreach ($bind as $column => $_) {
         $set[] = $column . ' = :' . $column;
     }
     $sql = 'UPDATE ' . $table . ' SET ' . join(', ', $set) . ($filter ? ' WHERE ' . $this->renderFilter($filter) : '');
     $statement = $this->dbAdapter->prepare($sql);
     foreach ($bind as $column => $value) {
         $type = isset($types[$column]) ? $types[$column] : PDO::PARAM_STR;
         $statement->bindValue(':' . $column, $value, $type);
     }
     $statement->execute();
     return $statement->rowCount();
 }
Example #2
0
 /**
  * Updates the lastEnd values of all entries
  *
  * @return void
  */
 private function _updateLastEnd()
 {
     if ($this->_debug) {
         Phprojekt::getInstance()->getLog()->debug('_updateLastEnd');
     }
     $this->_db->query('UPDATE calendar2 SET last_end = end WHERE rrule = ""');
     $entries = $this->_db->select()->from('calendar2', array('id', 'start', 'end', 'rrule'))->where('rrule != ""')->query()->fetchAll();
     $update = $this->_db->prepare('UPDATE calendar2 SET last_end = :last_end WHERE id = :id');
     $x = 0;
     foreach ($entries as $key => $e) {
         if ($this->_debug && ++$x % 100 == 0) {
             Phprojekt::getInstance()->getLog()->debug($x);
         }
         $start = new Datetime($e['start']);
         $end = new Datetime($e['end']);
         $duration = $start->diff($end);
         $helper = new Calendar2_Helper_Rrule($start, $duration, $e['rrule']);
         $update->execute(array(':last_end' => $helper->getUpperTimeBoundary()->format('Y-m-d H:i:s'), ':id' => $e['id']));
     }
 }
Example #3
0
 /**
  * Prepare a statement and return a PDOStatement-like object.
  *
  * @param string|Zend_Db_Select $sql SQL query
  * @return Zend_Db_Statement|PDOStatement
  */
 public function prepare($sql)
 {
     return $this->_adapter->prepare($sql);
 }
Example #4
0
 public static function printQuery(Zend_Db_Adapter_Abstract $database, $query)
 {
     try {
         $s = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
         $s .= '<html>';
         $s .= '<head>';
         $s .= '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
         $s .= '</head>';
         $s .= '<body>';
         $statement = $database->prepare($query);
         $statement->execute();
         $result = $statement->fetchAll(Zend_Db::FETCH_ASSOC);
         $s .= "<table width=600 border=1>";
         $s .= "<tr><th colspan=\"2\" align=\"left\" bgcolor=\"#eeeeee\"><h2>Database - Select Query</h2></td></tr>";
         $s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Database Class</nobr></nobr></td><td>" . get_class($database) . "&nbsp;</td></tr>";
         $s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Statement Class</nobr></td><td>" . get_class($statement) . "&nbsp;</td></tr>";
         $s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Rows</nobr></td><td>" . sizeof($result) . "&nbsp;</td></tr>";
         #$s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Columns</nobr></td><td>".$numCols."&nbsp;</td></tr>";
         $s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Query</nobr></td><td>" . htmlentities($query) . "&nbsp;</td></tr>";
         $s .= "</table><br />";
         $count = 0;
         if (sizeof($result) > 0) {
             $s .= "<table border=1>";
             foreach ($result as $row) {
                 if ($count == 0) {
                     # column index
                     $colCount = 0;
                     $s .= "<tr>";
                     foreach ($row as $k => $v) {
                         $s .= '<th align="left" bgcolor="#eeeeee">' . $colCount++ . '</th>';
                     }
                     $s .= "</tr>";
                     # column names
                     $s .= "<tr>";
                     foreach ($row as $k => $v) {
                         $s .= '<th align="left" bgcolor="#eeeeee">' . htmlentities($k) . '</th>';
                     }
                     $s .= "</tr>";
                 }
                 $s .= "<tr>";
                 foreach ($row as $k => $v) {
                     $v = mb_substr($v, 0, 100);
                     $s .= '<td>' . htmlentities($v) . '&nbsp;</td>';
                 }
                 $s .= "</tr>";
                 $count++;
             }
             $s .= "</table><br />";
         }
         # EXPLAIN
         $statement = $database->prepare('EXPLAIN ' . $query);
         $statement->execute();
         $result = $statement->fetchAll(Zend_Db::FETCH_ASSOC);
         $count = 0;
         if (sizeof($result) > 0) {
             $s .= "<table border=1>";
             foreach ($result as $row) {
                 if ($count == 0) {
                     # column names
                     $s .= "<tr>";
                     foreach ($row as $k => $v) {
                         $s .= '<th align="left" bgcolor="#eeeeee">' . htmlentities($k) . '</th>';
                     }
                     $s .= "</tr>";
                 }
                 $s .= "<tr>";
                 foreach ($row as $k => $v) {
                     $v = mb_substr($v, 0, 100);
                     $s .= '<td>' . htmlentities($v) . '&nbsp;</td>';
                 }
                 $s .= "</tr>";
                 $count++;
             }
             $s .= "</table><br />";
         }
         $s .= '</body>';
         $s .= '</html>';
         print $s;
     } catch (Exception $exception) {
         $s = "<table width=600 border=1>";
         $s .= "<tr><th colspan=\"2\" align=\"left\" bgcolor=\"#eeeeee\"><h2>Database - Select Query</h2></td></tr>";
         $s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Database Class</nobr></td><td>" . get_class($database) . "&nbsp;</td></tr>";
         #$s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Statement Class</nobr></td><td>".get_class($result)."&nbsp;</td></tr>";
         $s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Code</nobr></td><td>" . $exception->getCode() . "&nbsp;</td></tr>";
         $s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Error</nobr></td><td>" . $exception->getMessage() . "&nbsp;</td></tr>";
         #$s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Native Code</nobr></td><td>".$this->getNativeErrorCode()."&nbsp;</td></tr>";
         #$s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Native Error</nobr></td><td>".htmlentities($this->getNativeError())."&nbsp;</td></tr>";
         $s .= "<tr><th valign=\"top\" align=\"left\" bgcolor=\"#eeeeee\"><nobr>Query</nobr></td><td>" . htmlentities($query) . "&nbsp;</td></tr>";
         $s .= "</table><br />";
         print $s;
     }
 }
Example #5
0
 /**
  * 
  * @param Zend_Db_Adapter_Abstract $db
  * @param string $printerName
  * @param string $ipServer
  * @return boolean
  * @throws ZendT_Exception_Error
  */
 private function _printDocuments($db, $printerName, $ipServer)
 {
     $sql = "declare\n                      message varchar2(500);\n                   begin\n                      wsapi.ws_printserver_pkg.print(pprintername => :printername,\n                                                     pipserver => :ipserver);\n                      :erro      := 0;\n                      :message   := NULL;\n                   exception when others then\n                      :erro      := 1;\n                      :message   := sqlerrm;\n                   end;";
     $stmt = $db->prepare($sql);
     $stmt->bindParam('printername', $printerName);
     $stmt->bindParam('ipserver', $ipServer);
     $stmt->bindValue('erro', $erro);
     $stmt->bindValue('message', $message);
     $stmt->execute();
     if ($erro) {
         throw new ZendT_Exception_Error($message);
     }
     return true;
 }