Пример #1
0
/**
 * 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;
 }
Пример #3
0
 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;
 }