/** * Generates the SQL commands necessary to create all tables * @param string $db_type Database type for which to generate SQL * @return array Array of SQL commands or false if error */ function GetTableCreationSQL($db_type, $tbl_prefix) { $db = NewAdoConnection($db_type); $schema = new adoSchema($db); $schema->setPrefix($tbl_prefix); if ($sql = $schema->ParseSchema('create.xml')) { return $sql; } else { return false; } }
function auth($user, $pass, $args) { $r = $db_pw = false; $dsn = access_query("authanydb", 0); $col_login = access_query("authanydblogincolumn", 0) or $col_login = "******"; $col_pass = access_query("authanydbpasswordcolumn", 0) or $col_pass = "******"; $desc = parse_url($dsn); $desc["database"] = strtok($desc["path"], "/"); $table = strtok("/"); $dsn = substr($dsn, 0, strrpos($dsn, "/")); if (function_exists("newadoconnection") && ($db = NewAdoConnection($desc["scheme"])) && $db->connect($desc["host"], $desc["user"], $desc["pass"], $desc["database"])) { $user = $db->qstr($user); $SQL = "SELECT {$col_pass} FROM {$table} WHERE {$col_login}={$user}"; if ($row = $db->GetRow($SQL)) { $db_pw = $row[0]; } $db->Close(); } elseif (class_exists("DB")) { $db = DB::connect($dsn); $user = $db->quoteString($user); $SQL = "SELECT {$col_pass} FROM {$table} WHERE {$col_login}='{$user}'"; if ($row = $db->getRow($SQL)) { $db_pw = $row[0]; } } elseif (function_exists("dbx_connect") && ($db = dbx_connect($desc["scheme"], $desc["host"], $desc["database"], $desc["user"], $desc["pass"]))) { $user = dbx_escape_string($db, $user); $SQL = "SELECT {$col_pass} FROM {$table} WHERE {$col_login}='{$user}'"; if ($result = dbx_query($db, $SQL)) { $db_pw = $result->data[0][0]; } dbx_close($db); } else { techo("mod_auth_anydb: no database interface used (db auth problem?)", NW_EL_WARNING); return $r = false; } $r = strlen($db_pw) && strlen($pass) && ($db_pw == $pass or $db_pw == crypt($pass, substr($db_pw, 0, 2)) or $db_pw == md5($pass)); return $r; }
function anydb_connect($host = "localhost", $user = "", $pw = "", $dbname = "test", $dbtype = "mysql") { global $anydb_handle; class_exists("DB") and $db = DB::connect("{$dbtype}://{$user}:{$pw}@{$host}/{$dbname}") and is_a($db, "db_common") and ($db->setFetchMode(DB_FETCHMODE_ASSOC) or true) or function_exists("newadoconnection") and $db = NewAdoConnection($dbtype) and $db->connect($host, $user, $pw, $dbname) and ($db->setFetchMode(ADODB_FETCH_ASSOC) or true) or $dbtype[0] == "p" and function_exists("pg_connect") and $db = pg_connect("dbname={$dbname} user={$user} password={$pw}") or function_exists("mysql_connect") and $db = mysql_connect($host, $user, $pw) and mysql_query("USE {$dbname}") or function_exists("dbx_connect") and $db = dbx_connect($dbtype, $host, $dbname, $user, $pw) or $db = false; if ($anydb_handle = $db) { $charset = EWIKI_DB_UTF8 ? "UTF8" : "ISO-8859-1"; @anydb_query("SET NAMES '{$charset}'"); #-- not all databases support this } return $db; }