Удобная штука. Почти как в ezSQL.
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- class MyPDO extends PDO {
- public $num_queries = 0;
- public $last_query = '';
- public function q($query,$array = false) {
- $this->num_queries++;
- if ($array == false and preg_match("/^(insert|delete|update|replace|drop|create|set)\s+/i", $query))
- {
- $this->exec($query);
- $return_val = $this->lastInsertId();
- $this->error($this);
- }
- elseif ($array == false)
- {
- $res = $this->query($query);
- $this->error($this);
- if ($res != false)
- $return_val = $res->fetchAll(PDO::FETCH_ASSOC);
- else
- {
- $return_val = false;
- }
- }
- {
- $res = $this->prepare($query);
- $res->execute($array);
- $return_val = $res->fetchAll(PDO::FETCH_ASSOC);
- $this->error($res);
- }
- return $return_val;
- }
- {
- {
- $sql = 'INSERT INTO `'.$table.'` SET ';
- $p = $this->prepareSQL($fields);
- $this->q($sql.$p['sql'],$p['keys']);
- return $this->lastInsertId();
- }
- }
- function prepareSQL($fields)
- {
- {
- $i = 1;
- foreach ($fields AS $key => $value)
- {
- $sql .= $key.' = :'.$key;
- if ($n != $i)
- $sql .= ', ';
- $i++;
- }
- }
- }
- public function error($obj)
- {
- $arError = $obj->errorInfo();
- if (DEBUG and $arError[2] != '')
- echo 'SQL error: '.$arError[2]."<br/>\n";
- }
- public function __destruct()
- {
- //if (DEBUG) echo '<div><center>[ Всего sql запросов на странице: '.$this->num_queries.' ]</center></div>';
- }
- }