Lines Matching refs:dbh

43     public static function init(LoggerInterface $logger, rcube_db $dbh = null): void  argument
49 if (isset($dbh)) {
50 self::setDbHandle($dbh);
56 $dbh = self::$dbHandle;
57 if (!isset($dbh)) {
58 $dbh = rcmail::get_instance()->db;
59 self::setDbHandle($dbh);
62 return $dbh;
75 $dbh = self::getDbHandle();
85 switch ($dbh->db_provider) {
87 $ret = $dbh->query("SET TRANSACTION ISOLATION LEVEL $level, $mode");
93 … $ret = $dbh->query("SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL $level, $mode");
96 self::$logger->critical("Unsupported database backend: " . $dbh->db_provider);
101 $ret = $dbh->startTransaction();
105 self::$logger->error(__METHOD__ . " ERROR: " . $dbh->is_error());
106 throw new DatabaseException($dbh->is_error());
118 $dbh = self::getDbHandle();
123 if ($dbh->endTransaction() === false) {
124 self::$logger->error("Database::endTransaction ERROR: " . $dbh->is_error());
125 throw new DatabaseException($dbh->is_error());
139 $dbh = self::getDbHandle();
143 if ($dbh->rollbackTransaction() === false) {
144 self::$logger->error("Database::rollbackTransaction ERROR: " . $dbh->is_error());
145 throw new \Exception($dbh->is_error());
163 $dbh = self::getDbHandle();
165 switch ($dbh->db_provider) {
167 $ret = $dbh->query(
177 $logger->warning(__METHOD__ . " ERROR: " . $dbh->is_error());
194 $dbh = self::getDbHandle();
197 switch ($dbh->db_provider) {
208 self::$logger->critical("Unsupported database backend: " . $dbh->db_provider);
223 $dbh->set_option('ignore_key_errors', true);
224 … $sql_result = $dbh->query('SELECT filename FROM ' . $dbh->table_name('carddav_migrations')) ?: [];
225 while ($processed = $dbh->fetch_assoc($sql_result)) {
228 $dbh->set_option('ignore_key_errors', null);
252 if ($migrationObj->migrate($dbh, self::$logger) === false) {
256 if (self::performSqlMigration($sqlMigrationScript, $dbPrefix, $dbh) === false) {
265 $dbh->query(
266 "INSERT INTO " . $dbh->table_name("carddav_migrations") . " (filename) VALUES (?)",
270 if ($dbh->is_error()) {
271 … self::$logger->error("Recording exec of migration $migration failed: " . $dbh->is_error());
277 …static function performSqlMigration(string $migrationScript, string $dbPrefix, rcube_db $dbh): bool argument
291 $dbh->query($query);
293 if ($dbh->is_error()) {
294 self::$logger->error("Migration query ($query) failed: " . $dbh->is_error());
398 $dbh = self::getDbHandle();
450 $dbh = self::getDbHandle();
452 $sql = 'INSERT INTO ' . $dbh->table_name("carddav_$table") .
456 $sql_result = $dbh->query($sql, $vals);
461 $dbid = $dbh->insert_id("carddav_$table");
466 if ($dbh->is_error()) {
467 self::$logger->error("Database::insert ($sql) ERROR: " . $dbh->is_error());
468 throw new \Exception($dbh->is_error());
497 $dbh = self::getDbHandle();
498 …$sql = 'UPDATE ' . $dbh->table_name("carddav_$table") . ' SET ' . implode("=?,", $cols) . '=? WHER…
501 $sql .= self::getConditionQuery($dbh, $idfield, $id);
504 $sql .= self::getOtherConditionsQuery($dbh, $other_conditions);
507 $sql_result = $dbh->query($sql, $vals);
509 if ($dbh->is_error()) {
510 self::$logger->error("Database::update ($sql) ERROR: " . $dbh->is_error());
511 throw new DatabaseException($dbh->is_error());
514 return $dbh->affected_rows($sql_result);
545 $dbh = self::getDbHandle();
547 $sql = "SELECT $cols FROM " . $dbh->table_name("carddav_$table") . ' WHERE ';
550 $sql .= self::getConditionQuery($dbh, $idfield, $id);
553 $sql .= self::getOtherConditionsQuery($dbh, $other_conditions);
555 $sql_result = $dbh->query($sql);
557 if ($dbh->is_error()) {
558 self::$logger->error("Database::get ($sql) ERROR: " . $dbh->is_error());
559 throw new DatabaseException($dbh->is_error());
564 $ret = $dbh->fetch_assoc($sql_result);
572 while ($row = $dbh->fetch_assoc($sql_result)) {
598 $dbh = self::getDbHandle();
600 $sql = "DELETE FROM " . $dbh->table_name("carddav_$table") . " WHERE ";
603 $sql .= self::getConditionQuery($dbh, $idfield, $id);
606 $sql .= self::getOtherConditionsQuery($dbh, $other_conditions);
610 $sql_result = $dbh->query($sql);
612 if ($dbh->is_error()) {
613 self::$logger->error("Database::delete ($sql) ERROR: " . $dbh->is_error());
614 throw new DatabaseException($dbh->is_error());
617 return $dbh->affected_rows($sql_result);
623 * @param rcube_db $dbh The roundcube database handle.
633 private static function getConditionQuery(rcube_db $dbh, string $field, $value): string argument
647 $sql = $dbh->quote_identifier($field);
655 $quoted_values = array_map([ $dbh, 'quote' ], $value);
663 if ($dbh->db_provider === "mysql") {
666 $ilikecmd = ($dbh->db_provider === "postgres") ? "ILIKE" : "LIKE";
671 $sql .= $dbh->quote($value);
677 private static function getOtherConditionsQuery(rcube_db $dbh, array $other_conditions): string argument
683 $sql .= self::getConditionQuery($dbh, $field, $value);
689 private static function setDbHandle(rcube_db $dbh): void argument
691 self::$dbHandle = $dbh;
694 if ($dbh->db_provider == "sqlite") {
695 $dbh->query('PRAGMA FOREIGN_KEYS=ON;');