adminerevo/adminer/include/driver.inc.php

106 lines
3 KiB
PHP
Raw Normal View History

<?php
/*abstract*/ class Min_SQL {
var $_conn;
/** Create object for performing database operations
* @param Min_DB
*/
function Min_SQL($connection) {
$this->_conn = $connection;
}
2013-07-10 00:38:13 +00:00
/** Select data from table
* @param string
* @param array result of $adminer->selectColumnsProcess()[0]
* @param array result of $adminer->selectSearchProcess()
* @param array result of $adminer->selectColumnsProcess()[1]
* @param array result of $adminer->selectOrderProcess()
* @param int result of $adminer->selectLimitProcess()
* @param int index of page starting at zero
* @return Min_Result
*/
function select($table, $select, $where, $group, $order, $limit, $page) {
global $adminer, $jush;
$is_group = (count($group) < count($select));
$query = $adminer->selectQueryBuild($select, $where, $group, $order, $limit, $page);
if (!$query) {
$query = "SELECT" . limit(
($_GET["page"] != "last" && +$limit && $group && $is_group && $jush == "sql" ? "SQL_CALC_FOUND_ROWS " : "") . implode(", ", $select) . "\nFROM " . table($table),
($where ? "\nWHERE " . implode(" AND ", $where) : "") . ($group && $is_group ? "\nGROUP BY " . implode(", ", $group) : "") . ($order ? "\nORDER BY " . implode(", ", $order) : ""),
($limit != "" ? +$limit : null),
($page ? $limit * $page : 0),
"\n"
);
}
echo $adminer->selectQuery($query);
return $this->_conn->query($query);
}
/** Delete data from table
* @param string
* @param string " WHERE ..."
* @param int 0 or 1
* @return bool
*/
function delete($table, $queryWhere, $limit = 0) {
$query = "FROM " . table($table);
return queries("DELETE" . ($limit ? limit1($query, $queryWhere) : " $query$queryWhere"));
}
2013-07-05 22:32:15 +00:00
/** Update data in table
* @param string
2013-07-06 17:31:21 +00:00
* @param array escaped columns in keys, quoted data in values
2013-07-05 22:32:15 +00:00
* @param string " WHERE ..."
* @param int 0 or 1
2013-07-06 17:31:21 +00:00
* @param string
2013-07-05 22:32:15 +00:00
* @return bool
*/
2013-07-06 17:31:21 +00:00
function update($table, $set, $queryWhere, $limit = 0, $separator = "\n") {
$values = array();
foreach ($set as $key => $val) {
$values[] = "$key = $val";
}
$query = table($table) . " SET$separator" . implode(",$separator", $values);
2013-07-05 22:32:15 +00:00
return queries("UPDATE" . ($limit ? limit1($query, $queryWhere) : " $query$queryWhere"));
}
/** Insert data into table
* @param string
2013-07-06 17:31:21 +00:00
* @param array escaped columns in keys, quoted data in values
* @return bool
*/
function insert($table, $set) {
2013-07-06 17:31:21 +00:00
return queries("INSERT INTO " . table($table) . ($set
? " (" . implode(", ", array_keys($set)) . ")\nVALUES (" . implode(", ", $set) . ")"
: "DEFAULT VALUES"
));
}
/** Insert or update data in table
* @param string
* @param array
2013-07-09 18:34:12 +00:00
* @param array of arrays with escaped columns in keys and quoted data in values
* @return bool
*/
2013-07-09 18:34:12 +00:00
/*abstract*/ function insertUpdate($table, $rows, $primary) {
return false;
}
2013-07-09 18:43:01 +00:00
/** Begin transaction
* @return bool
*/
function begin() {
return queries("BEGIN");
}
function commit() {
return queries("COMMIT");
}
function rollback() {
return queries("ROLLBACK");
}
}