diff --git a/core/trunk/core/class/class_db_pdo.php b/core/trunk/core/class/class_db_pdo.php index 7f23f4060e0d84bf77eb6d67bca29d78aab7188f..5e67d89bc195cf6e73b054ce11a6c9922dac6b76 100644 --- a/core/trunk/core/class/class_db_pdo.php +++ b/core/trunk/core/class/class_db_pdo.php @@ -275,12 +275,13 @@ class Database extends functions * @param string $queryString The SQL query string * @param array $parameters An indexed or associative array of parameters * @param bool $catchExceptions Indicates wheter the PDO exceptions must be caught + * @param bool $multi Indicates wheter multi queries likes in sql file is required * * @return PDOStatement The prepared and executed statement * * @throws PDOException If a PDO error occurs during preparation or execution */ - public function query($queryString, $parameters=null, $catchExceptions=false) + public function query($queryString, $parameters=null, $catchExceptions=false, $multi=false) { if ($parameters) { foreach ($parameters as $key => $value) { @@ -317,32 +318,36 @@ class Database extends functions } } - try { - $this->stmt = $this->prepare($queryString); - preg_match_all("/\?|\:/", $queryString, $matches, PREG_OFFSET_CAPTURE); - if (empty($matches[0])) { - //echo $queryString; - $executed = $this->stmt->execute(); - } else { - $executed = $this->stmt->execute($parameters); - } - - - } catch (PDOException $PDOException) { - if ($catchExceptions) { - $this->error = $PDOException->getMessage(); + if ($multi) { + $this->pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, 0); + $this->pdo->exec($queryString); + return true; + } else { + try { + $this->stmt = $this->prepare($queryString); + preg_match_all("/\?|\:/", $queryString, $matches, PREG_OFFSET_CAPTURE); + if (empty($matches[0])) { + //echo $queryString; + $executed = $this->stmt->execute(); + } else { + $executed = $this->stmt->execute($parameters); + } + } catch (PDOException $PDOException) { + if ($catchExceptions) { + $this->error = $PDOException->getMessage(); - return false; - } else { - if ($_SESSION['config']['debug'] == 'true') { - echo $queryString; - var_export($parameters); + return false; + } else { + if ($_SESSION['config']['debug'] == 'true') { + echo $queryString; + var_export($parameters); + } + throw $PDOException; } - throw $PDOException; } } - return $this->stmt; + } public function limit_select($start, $count, $select_expr, $table_refs, $where_def='1=1', $other_clauses='', $select_opts='')