3 require_once('joe.lib.php');
5 function DBMaster($sql) {
7 $res = mysql_query($sql);
11 function DBSlave($sql) {
13 $res = mysql_query($sql);
15 if (mysql_error()) die($sql."<br />\n".mysql_error());
19 function DBSelect($sql) { return DBSlave($sql); }
20 function DBInsert($sql) {
22 if (mysql_error()) die($sql."<br />\n".mysql_error());
23 return mysql_insert_id();
25 function DBUpdate($sql) { DBInsert($sql); }
26 function DBDelete($sql) { DBInsert($sql); }
27 function DBCreate($sql) { DBMaster($sql); }
28 function DBDrop($sql) { DBMaster($sql); }
29 function DBGrant($sql) { DBInsert($sql); }
30 function DBRevoke($sql) { DBInsert($sql); }
31 function DBSet($sql) { DBInsert($sql); }
32 function DBShow($sql) { return DBSlave($sql); }
34 function calcDBSize($tdb) {
35 $sql_result = "SHOW TABLE STATUS FROM `" .mysql_escape_string($tdb)."`";
36 // $result = @mysql_db_query($tdb,$sql_result);
37 $result = DBShow($sql_result);
41 while ($data = mysql_fetch_array($result)) {
42 $size += $data["Data_length"] + $data["Index_length"];
44 mysql_free_result($result);
52 function checkQuotas($userId=null) {
54 $sql = 'SELECT DatabaseId,Name FROM DB WHERE bEnabled=1';
56 $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));
58 $databases = fetchRows(DBSelect($sql),'Name');
59 foreach($databases as $db) {
60 $DBId = $db['DatabaseId'];
61 $arr['dLastCheck'] = 'NOW()';
62 $arr['nBytes'] = calcDBSize($db['Name']);
63 $sql = sprintf("UPDATE DB %s WHERE DatabaseId = '%s'",
65 mysql_escape_string($DBId));
68 $sql = "UPDATE UserStat SET nBytes = (
71 INNER JOIN DBOwner ON DBOwner.DatabaseId = DB.DatabaseId
72 WHERE DBOwner.UserId = UserStat.UserId
75 ), dLastCheck = NOW()";
76 if (!empty($userId)) $sql .= sprintf(" WHERE UserId = '%s'", mysql_escape_string($userId));