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; }
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'; } }
function MySQL_buildonemanykey($keyName, $values) { $str = '`' . $keyName . '` '; if (is_array($values)) { $str .= ' IN ' . MySQL_arrayToSequence($values); } else { $str .= '=' . MySQL_quote($values); } return $str; }
<?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);
} 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