示例#1
0
 function generateSQL()
 {
     $size = $this->actionbuffer->getSize();
     $query = '';
     if ($size > 0) {
         $query = 'INSERT INTO Transactions (UserID,GenericID,ActionID) VALUES ';
         for ($i = 0; $i < $size; $i++) {
             $data = $this->actionbuffer->removeFirst();
             $query .= MySQL_arrayToSequence($data);
             if ($i + 1 < $size) {
                 $query .= ',';
             }
         }
     }
     return $query;
 }
示例#2
0
 function checkout($usercode, $barcode)
 {
     global $MySQL_singleton_abort;
     global $_MySQL_trans, $_Transactions;
     $bad = false;
     $oid = MySQL_singleton('SELECT ObjectID FROM Objects WHERE ObjectBarcode = ' . MySQL_quote($barcode));
     if ($oid == $MySQL_singleton_abort) {
         echo 'Item unknown';
         $bad = true;
     }
     $uid = MySQL_singleton('SELECT UserID FROM Users WHERE UserBarcode = ' . MySQL_quote($usercode));
     if ($uid == $MySQL_singleton_abort) {
         echo 'User unknown';
         $bad = true;
     }
     $coid = MySQL_singleton('SELECT CheckOutID FROM CheckOuts WHERE ObjectID=' . MySQL_quote($oid));
     if ($coid != $MySQL_singleton_abort) {
         echo 'Item is already out, checkin first (' . $coid . ')';
         $bad = true;
     }
     if (!$bad) {
         $_MySQL_trans->start();
         //$_MySQL_trans->run("SELECT @duration := ObjectTypeLoanDuration FROM Objects LEFT JOIN ObjectTypes USING (ObjectTypeID) WHERE ObjectID=".$oid);
         //$_MySQL_trans->run("SELECT @year:=EXTRACT(YEAR FROM @duration), @month:=EXTRACT(MONTH FROM @duration), @day:=EXTRACT(DAY FROM @duration), @hour:=EXTRACT(HOUR FROM @duration), @minute:=EXTRACT(MINUTE FROM @duration), @second:=EXTRACT(SECOND FROM @duration)");
         //$_MySQL_trans->run("SELECT @duration:=CONCAT(@year*365+@month*30+@day,SUBSTRING(@duration,LOCATE(' ',@duration)))");
         // $_MySQL_trans->run("SELECT @duedate:=DATE_ADD(NOW(),INTERVAL @duration DAY_SECOND);");
         $query1 = 'SELECT @duedate:=(((((((NOW() + INTERVAL EXTRACT(YEAR FROM
        ObjectTypeLoanDuration) YEAR) + INTERVAL EXTRACT(MONTH FROM
        ObjectTypeLoanDuration) MONTH) + INTERVAL EXTRACT(DAY FROM
        ObjectTypeLoanDuration) DAY) + INTERVAL EXTRACT(HOUR FROM
        ObjectTypeLoanDuration) HOUR) + INTERVAL EXTRACT(MINUTE FROM
        ObjectTypeLoanDuration) MINUTE) + INTERVAL EXTRACT(SECOND FROM
        ObjectTypeLoanDuration) SECOND)) FROM Objects LEFT JOIN ObjectTypes
        USING (ObjectTypeID) WHERE ObjectID=' . MySQL_quote($oid) . ';';
         $query2 = 'INSERT CheckOuts (UserID,ObjectID,CheckOutDueDate) VALUES ' . MySQL_arrayToSequence(array(MySQL_quote($uid), MySQL_quote($oid), '@duedate'), TRUE, FALSE);
         $_MySQL_trans->run($query1);
         $_MySQL_trans->run($query2);
         $_MySQL_trans->run($_Transactions->singleton(0, 'aC', 'LAST_INSERT_ID()'));
         $_MySQL_trans->execute();
         echo 'Item now checked out';
     }
 }
示例#3
0
文件: MySQL.php 项目: robbat2/rats
function MySQL_buildonemanykey($keyName, $values)
{
    $str = '`' . $keyName . '` ';
    if (is_array($values)) {
        $str .= ' IN ' . MySQL_arrayToSequence($values);
    } else {
        $str .= '=' . MySQL_quote($values);
    }
    return $str;
}
示例#4
0
文件: addedit.php 项目: robbat2/rats
<?php

/* $Id: addedit.php,v 1.7 2004/06/08 15:17:19 mdeepwel Exp $ */
/* $Source: /code/convert/cvsroot/infrastructure/rats/addedit.php,v $ */
include './header.inc.php';
$perm = v('perm', 'add');
include 'lib/commontable.inc.php';
if ($tablePerm[$perm]) {
    ?>
<form action="submit.php" method="POST" class="dataform">
<?php 
    $editData = NULL;
    if ($perm == 'edit') {
        $idEdit = v('id');
        $tableEdit = v('table');
        $cols = MySQL_arrayToSequence($tableData[$tableName]['_view_cols'], FALSE, FALSE);
        if (empty($tableData[$tableName]['_idkey'])) {
            die("Trying to edit a table {$tableName} without any ID key!\n");
        }
        $query = $tableData[$tableName]['_view_sql_all'] . ' WHERE ' . $tableData[$tableName]['_idkey'] . '=' . MySQL_quote($idEdit);
        if (dodbg()) {
            echo 'Query: ' . $query . "<br />\n";
        }
        global $MySQL_singleton_abort;
        $editData = MySQL_singletonassoc($query);
        if ($editData === $MySQL_singleton_abort) {
            die("Data abort! Query: {$query}\n");
        }
        echo hiddeninput(fieldName($tableName, $tableData[$tableName]['_idkey']), $idEdit);
    }
    echo hiddeninput('table', $tableName);
示例#5
0
文件: submit.php 项目: robbat2/rats
 }
 if (dodbg(2)) {
     echo "Data is:<br />\n";
     print_r($data);
     echo "<br />\nEnd of Data<br />\n";
 }
 foreach ($tableData[$tableName] as $kv => $val) {
     if ($kv[0] != '_' && $val['datatype'] == 'DATETIME') {
         if (dodbg(3)) {
             echo 'Squashing date for ' . $kv . "<br />\n";
         }
         $tmp = $data[$kv];
         $data[$kv] = squashDateArray($tmp);
     }
 }
 $query = str_replace('__VALUES__', MySQL_arrayToSequence($data, TRUE, TRUE, $tableData[$tableName]['_view_cols']), $query);
 if (dodbg()) {
     echo $query;
 }
 $res = _MySQL_queryhelper($query);
 if ($perm = 'add') {
     $_SESSION['msg'] = 'Item added to ' . $tableName;
 } else {
     $_SESSION['msg'] = 'Item edited in ' . $tableName;
 }
 if (!dodbg()) {
     httpredirect('view.php?table=' . $tableName);
 } else {
     echo 'MSG: ' . $_SESSION['msg'] . "<br />\n";
 }
 // TODO