]> andersk Git - sql-web.git/blobdiff - lib/dbaccess.lib.php
change password feature
[sql-web.git] / lib / dbaccess.lib.php
index e106698347e58f67920283538dac8b028d23b875..a3211a11a6986f3cb2b76406f3e9ee0e6838bd33 100644 (file)
@@ -12,16 +12,23 @@ function DBSlave($sql) {
        sessTime($sql);
        $res = mysql_query($sql);
        sessTime();
+       if (mysql_error()) die($sql."<br />\n".mysql_error());
        return $res;
 }
 
 function DBSelect($sql) { return DBSlave($sql); }
-function DBInsert($sql) { DBMaster($sql); return mysql_insert_id(); }
-function DBUpdate($sql) { DBMaster($sql); }
-function DBDelete($sql) { DBMaster($sql); }
-function DBGrant($sql) { DBMaster($sql); }
-function DBRevoke($sql) { DBMaster($sql); }
-function DBSet($sql) { DBMaster($sql); }
+function DBInsert($sql) {
+       DBMaster($sql);
+       if (mysql_error()) die($sql."<br />\n".mysql_error());
+       return mysql_insert_id();
+}
+function DBUpdate($sql) { DBInsert($sql); }
+function DBDelete($sql) { DBInsert($sql); }
+function DBCreate($sql) { DBMaster($sql); }
+function DBDrop($sql) { DBMaster($sql); }
+function DBGrant($sql) { DBInsert($sql); }
+function DBRevoke($sql) { DBInsert($sql); }
+function DBSet($sql) { DBInsert($sql); }
 function DBShow($sql) { return DBSlave($sql); }
 
 function calcDBSize($tdb) {
@@ -42,4 +49,42 @@ function calcDBSize($tdb) {
    }
 }
 
+function checkQuotas($userId=null) {
+       if (empty($userId)) {
+               $sql = 'SELECT DatabaseId,Name FROM DB WHERE bEnabled=1';
+       } else {
+               $sql = sprintf("SELECT DB.DatabaseId,Name FROM DB INNER JOIN DBOwner ON DB.DatabaseId = DBOwner.DatabaseId WHERE bEnabled=1 AND UserId = '%s'", mysql_escape_string($userId));
+       }
+       $databases = fetchRows(DBSelect($sql),'Name');
+       foreach($databases as $db) {
+               $DBId = $db['DatabaseId'];
+               $arr['dLastCheck'] = 'NOW()';
+               $arr['nBytes'] = calcDBSize($db['Name']);
+               $sql = sprintf("UPDATE DB %s WHERE DatabaseId = '%s'",
+                                               buildSQLSet($arr),
+                                               mysql_escape_string($DBId));
+               DBUpdate($sql);
+       }
+       $sql = "UPDATE UserStat SET nBytes = (
+                               SELECT SUM(nBytes)
+                               FROM DB
+                               INNER JOIN DBOwner ON DBOwner.DatabaseId = DB.DatabaseId
+                               WHERE DBOwner.UserId = UserStat.UserId
+                                 AND DB.bEnabled=1
+                               GROUP BY UserId
+                               ), dLastCheck = NOW()";
+       if (!empty($userId)) $sql .= sprintf(" WHERE UserId = '%s'", mysql_escape_string($userId));
+       DBUpdate($sql);
+       $sql = "UPDATE UserStat SET nDatabases = (
+                               SELECT COUNT(*)
+                               FROM DB
+                               INNER JOIN DBOwner ON DBOwner.DatabaseId = DB.DatabaseId
+                               WHERE DBOwner.UserId = UserStat.UserId
+                                 AND DB.bEnabled=1
+                               GROUP BY UserId
+                               ), dLastCheck = NOW()";
+       if (!empty($userId)) $sql .= sprintf(" WHERE UserId = '%s'", mysql_escape_string($userId));
+       DBUpdate($sql);
+}
+
 ?>
This page took 0.030099 seconds and 4 git commands to generate.