/** * Conexion a la base de datos, si no se ha hecho ya * @param string $dsn dsn de conexion a la base de datos * @param bool $options FIXME: se usa? * @return resource de conexion */ function connect($dsn, $options = false) { global $alm_connect; list($dbtype, $dbname, $host, $username, $pass) = almdata::parseDSN($dsn); if (!isset($alm_connect[$dsn])) { $db = null; switch ($dbtype) { case 'pgsql': $host = empty($host) ? '' : "host={$host}"; $db = pg_connect("{$host} dbname={$dbname} user={$username} password={$pass}"); break; case 'sqlite': break; case 'mysql': $db = mysql_connect($host, $username, $pass); if ($db) { $db_selected = mysql_select_db($dbname, $db); } break; default: almdata::printError("DBTYPE {$dbtype} not supported", true, true); break; } $alm_connect[$dsn] = $db; } else { $db = $alm_connect[$dsn]; } if (!isset($this)) { return; } else { almdata::setFunctions($dbtype); } return $db; }