예제 #1
0
 function Connect()
 {
     if (!strcmp($this->database_name, "")) {
         return $this->SetError("Connect", "it was not specified a valid database name");
     }
     $database_file = $this->GetDatabaseFile($this->database_name);
     if ($this->connection != 0) {
         if (!strcmp($this->connected_host, $this->host) && !strcmp($this->connected_user, $this->user) && !strcmp($this->connected_password, $this->password) && !strcmp($this->connected_database_file, $database_file) && $this->opened_persistent == $this->persistent) {
             return 1;
         }
         if (!$this->auto_commit && $this->transaction_id && !ibase_rollback($this->transaction_id)) {
             return $this->SetError("Connect", "Could not rollback unfinished transaction: " . ibase_errmsg());
         }
         $this->transaction_id = 0;
         ibase_close($this->connection);
         $this->connection = 0;
         $this->affected_rows = -1;
     }
     $function = $this->persistent ? "ibase_pconnect" : "ibase_connect";
     if (!function_exists($function)) {
         return $this->SetError("Connect", "Interbase support is not available in this PHP configuration");
     }
     if (($this->connection = @$function($this->host . ":" . $database_file, $this->user, $this->password)) <= 0) {
         return $this->SetError("Connect", "Could not connect to Interbase server (" . $this->host . ":{$database_file}): " . ibase_errmsg());
     }
     if (!$this->auto_commit && !($this->transaction_id = ibase_trans(IBASE_COMMITTED, $this->connection))) {
         return $this->SetError("Connect", "Could not open the initial connection transaction: " . ibase_errmsg());
     }
     $this->connected_host = $this->host;
     $this->connected_user = $this->user;
     $this->connected_password = $this->password;
     $this->opened_persistent = $this->persistent;
     $this->connected_database_file = $database_file;
     ibase_timefmt("%Y-%m-%d %H:%M:%S", IBASE_TIMESTAMP);
     ibase_timefmt("%Y-%m-%d", IBASE_DATE);
     return 1;
 }
예제 #2
0
 function _connect($argHostname, $argUsername, $argPassword, $argDatabasename, $persist = false)
 {
     if (!function_exists('ibase_pconnect')) {
         return null;
     }
     if ($argDatabasename) {
         $argHostname .= ':' . $argDatabasename;
     }
     $fn = $persist ? 'ibase_pconnect' : 'ibase_connect';
     $this->_connectionID = $fn($argHostname, $argUsername, $argPassword, $this->charSet, $this->buffers, $this->dialect);
     if ($this->dialect != 1) {
         // http://www.ibphoenix.com/ibp_60_del_id_ds.html
         $this->replaceQuote = "''";
     }
     if ($this->_connectionID === false) {
         $this->_handleerror();
         return false;
     }
     // PHP5 change.
     if (function_exists('ibase_timefmt')) {
         ibase_timefmt($this->ibase_datefmt, IBASE_DATE);
         if ($this->dialect == 1) {
             ibase_timefmt($this->ibase_datefmt, IBASE_TIMESTAMP);
         } else {
             ibase_timefmt($this->ibase_timestampfmt, IBASE_TIMESTAMP);
         }
         ibase_timefmt($this->ibase_timefmt, IBASE_TIME);
     } else {
         ini_set("ibase.timestampformat", $this->ibase_timestampfmt);
         ini_set("ibase.dateformat", $this->ibase_datefmt);
         ini_set("ibase.timeformat", $this->ibase_timefmt);
     }
     return true;
 }
 function ADODB_ibase()
 {
     ibase_timefmt('%Y-%m-%d');
 }
예제 #4
0
 function _pconnect($argHostname, $argUsername, $argPassword, $argDatabasename)
 {
     if (!function_exists('ibase_pconnect')) {
         return false;
     }
     if ($argDatabasename) {
         $argHostname .= ':' . $argDatabasename;
     }
     $this->_connectionID = ibase_pconnect($argHostname, $argUsername, $argPassword, $this->charSet, $this->buffers, $this->dialect);
     if ($this->dialect != 1) {
         // http://www.ibphoenix.com/ibp_60_del_id_ds.html
         $this->replaceQuote = "''";
     }
     if ($this->_connectionID === false) {
         $this->_handleerror();
         return false;
     }
     ibase_timefmt($this->ibase_timefmt);
     return true;
 }
예제 #5
0
 /**
  * @see ILumine_Connection::connect()
  */
 public function connect()
 {
     if ($this->conn_id && $this->state == self::OPEN) {
         Lumine_Log::debug('Utilizando conexao cacheada com ' . $this->getDatabase());
         return true;
     }
     $this->dispatchEvent(new Lumine_ConnectionEvent(Lumine_Event::PRE_CONNECT, $this));
     $hostString = $this->getHost();
     if ($this->getPort() != '') {
         // nao colocamos a porta uma vez que a string de conexao
         // nao suporta a informacao da porta
         //$hostString .=  ':' . $this->getPort();
     }
     $hostString = empty($hostString) ? $this->getDatabase() : $hostString . ':' . $this->getDatabase();
     if (isset($this->options['socket']) && $this->options['socket'] != '') {
         $hostString .= ':' . $this->options['socket'];
     }
     $flags = isset($this->options['flags']) ? $this->options['flags'] : null;
     if (isset($this->options['persistent']) && $this->options['persistent'] == true) {
         Lumine_Log::debug('Criando conexao persistente com ' . $this->getDatabase());
         $this->conn_id = @ibase_pconnect($hostString, $this->getUser(), $this->getPassword());
     } else {
         Lumine_Log::debug('Criando conexao com ' . $this->getDatabase());
         $this->conn_id = @ibase_connect($hostString, $this->getUser(), $this->getPassword());
     }
     if (!$this->conn_id) {
         $this->state = self::CLOSED;
         $msg = 'Nao foi possivel conectar no banco de dados: ' . $this->getDatabase() . ' - ' . $this->getErrorMsg();
         Lumine_Log::error($msg);
         $this->dispatchEvent(new Lumine_ConnectionEvent(Lumine_Event::CONNECTION_ERROR, $this, $msg));
         throw new Exception($msg);
         return false;
     }
     if (function_exists('ibase_timefmt')) {
         ibase_timefmt($this->ibase_datefmt, IBASE_DATE);
         if ($this->dialect == 1) {
             ibase_timefmt($this->ibase_datefmt, IBASE_TIMESTAMP);
         } else {
             ibase_timefmt($this->ibase_timestampfmt, IBASE_TIMESTAMP);
         }
         ibase_timefmt($this->ibase_timefmt, IBASE_TIME);
     } else {
         ini_set("ibase.timestampformat", $this->ibase_timestampfmt);
         ini_set("ibase.dateformat", $this->ibase_datefmt);
         ini_set("ibase.timeformat", $this->ibase_timefmt);
     }
     $this->state = self::OPEN;
     $this->dispatchEvent(new Lumine_ConnectionEvent(Lumine_Event::POS_CONNECT, $this));
     $this->setCharset($this->getCharset());
     return true;
 }
예제 #6
0
파일: ibase.php 프로젝트: Dulciane/jaws
 /**
  * Does the grunt work of connecting to the database
  *
  * @return mixed connection resource on success, MDB2 Error Object on failure
  * @access protected
  */
 function _doConnect($username, $password, $database_name, $persistent = false)
 {
     if (!extension_loaded('interbase')) {
         return $this->raiseError(MDB2_ERROR_NOT_FOUND, null, null, 'extension ' . $this->phptype . ' is not compiled into PHP', __FUNCTION__);
     }
     $database_file = $this->_getDatabaseFile($database_name);
     $dbhost = $this->dsn['hostspec'] ? $this->dsn['hostspec'] . ':' . $database_file : $database_file;
     $params = array();
     $params[] = $dbhost;
     $params[] = !empty($username) ? $username : null;
     $params[] = !empty($password) ? $password : null;
     $params[] = isset($this->dsn['charset']) ? $this->dsn['charset'] : null;
     $params[] = isset($this->dsn['buffers']) ? $this->dsn['buffers'] : null;
     $params[] = isset($this->dsn['dialect']) ? $this->dsn['dialect'] : null;
     $params[] = isset($this->dsn['role']) ? $this->dsn['role'] : null;
     $connect_function = $persistent ? 'ibase_pconnect' : 'ibase_connect';
     $connection = @call_user_func_array($connect_function, $params);
     if ($connection <= 0) {
         return $this->raiseError(MDB2_ERROR_CONNECT_FAILED, null, null, 'unable to establish a connection', __FUNCTION__);
     }
     if (empty($this->dsn['disable_iso_date'])) {
         if (function_exists('ibase_timefmt')) {
             @ibase_timefmt("%Y-%m-%d %H:%M:%S", IBASE_TIMESTAMP);
             @ibase_timefmt("%Y-%m-%d", IBASE_DATE);
         } else {
             @ini_set("ibase.timestampformat", "%Y-%m-%d %H:%M:%S");
             //@ini_set("ibase.timeformat", "%H:%M:%S");
             @ini_set("ibase.dateformat", "%Y-%m-%d");
         }
     }
     return $connection;
 }
 /**
  * Does the grunt work of connecting to the database
  *
  * @return mixed connection resource on success, MDB_Error on failure
  * @access private
  **/
 function _doConnect($database_name, $persistent)
 {
     $function = $persistent ? 'ibase_pconnect' : 'ibase_connect';
     if (!function_exists($function)) {
         return $this->raiseError(MDB_ERROR_UNSUPPORTED, NULL, NULL, 'doConnect: FireBird/InterBase support is not available in this PHP configuration');
     }
     $dbhost = $this->host ? $this->host . ':' . $database_name : $database_name;
     $params = array();
     $params[] = $dbhost;
     $params[] = !empty($this->user) ? $this->user : NULL;
     $params[] = !empty($this->password) ? $this->password : NULL;
     $connection = @call_user_func_array($function, $params);
     if ($connection > 0) {
         @ibase_timefmt("%Y-%m-%d %H:%M:%S", IBASE_TIMESTAMP);
         @ibase_timefmt("%Y-%m-%d", IBASE_DATE);
         return $connection;
     }
     if (isset($php_errormsg)) {
         $error_msg = $php_errormsg;
     } else {
         $error_msg = 'Could not connect to FireBird/InterBase server';
     }
     return $this->raiseError(MDB_ERROR_CONNECT_FAILED, NULL, NULL, 'doConnect: ' . $error_msg);
 }
예제 #8
0
파일: ibase.php 프로젝트: Rudi9719/lucid
 /**
  * Does the grunt work of connecting to the database
  *
  * @return mixed connection resource on success, MDB2 Error Object on failure
  * @access protected
  */
 function _doConnect($database_name, $persistent = false)
 {
     $user = $this->dsn['username'];
     $pw = $this->dsn['password'];
     $dbhost = $this->dsn['hostspec'] ? $this->dsn['hostspec'] . ':' . $database_name : $database_name;
     $params = array();
     $params[] = $dbhost;
     $params[] = !empty($user) ? $user : null;
     $params[] = !empty($pw) ? $pw : null;
     $params[] = isset($this->dsn['charset']) ? $this->dsn['charset'] : null;
     $params[] = isset($this->dsn['buffers']) ? $this->dsn['buffers'] : null;
     $params[] = isset($this->dsn['dialect']) ? $this->dsn['dialect'] : null;
     $params[] = isset($this->dsn['role']) ? $this->dsn['role'] : null;
     $connect_function = $persistent ? 'ibase_pconnect' : 'ibase_connect';
     $connection = @call_user_func_array($connect_function, $params);
     if ($connection <= 0) {
         return $this->raiseError(MDB2_ERROR_CONNECT_FAILED, null, null, 'unable to establish a connection', __FUNCTION__);
     }
     if (empty($this->dsn['disable_iso_date'])) {
         if (function_exists('ibase_timefmt')) {
             @ibase_timefmt("%Y-%m-%d %H:%M:%S", IBASE_TIMESTAMP);
             @ibase_timefmt("%Y-%m-%d", IBASE_DATE);
         } else {
             @ini_set("ibase.timestampformat", "%Y-%m-%d %H:%M:%S");
             //@ini_set("ibase.timeformat", "%H:%M:%S");
             @ini_set("ibase.dateformat", "%Y-%m-%d");
         }
     }
     return $connection;
 }
예제 #9
0
 /**
  * Does the grunt work of connecting to the database
  *
  * @return mixed connection resource on success, MDB2 Error Object on failure
  * @access private
  **/
 function _doConnect($database_name, $persistent = false)
 {
     $dsninfo = $this->dsn;
     $user = $dsninfo['username'];
     $pw = $dsninfo['password'];
     $dbhost = $dsninfo['hostspec'] ? $dsninfo['hostspec'] . ':' . $database_name : $database_name;
     $params = array();
     $params[] = $dbhost;
     $params[] = !empty($user) ? $user : null;
     $params[] = !empty($pw) ? $pw : null;
     $params[] = isset($dsninfo['charset']) ? $dsninfo['charset'] : null;
     $params[] = isset($dsninfo['buffers']) ? $dsninfo['buffers'] : null;
     $params[] = isset($dsninfo['dialect']) ? $dsninfo['dialect'] : null;
     $params[] = isset($dsninfo['role']) ? $dsninfo['role'] : null;
     $function = $persistent ? 'ibase_pconnect' : 'ibase_connect';
     $connection = @call_user_func_array($function, $params);
     if ($connection > 0) {
         @ibase_timefmt("%Y-%m-%d %H:%M:%S", IBASE_TIMESTAMP);
         @ibase_timefmt("%Y-%m-%d", IBASE_DATE);
         return $connection;
     }
     if (isset($php_errormsg)) {
         $error_msg = $php_errormsg;
     } else {
         $error_msg = 'Could not connect to FireBird/InterBase server';
     }
     return $this->raiseError(MDB2_ERROR_CONNECT_FAILED, null, null, $error_msg);
 }