aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/libraries/classes/Dbi/DbiExtension.php
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/libraries/classes/Dbi/DbiExtension.php')
-rw-r--r--srcs/phpmyadmin/libraries/classes/Dbi/DbiExtension.php248
1 files changed, 248 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/libraries/classes/Dbi/DbiExtension.php b/srcs/phpmyadmin/libraries/classes/Dbi/DbiExtension.php
new file mode 100644
index 0000000..8cfa9fc
--- /dev/null
+++ b/srcs/phpmyadmin/libraries/classes/Dbi/DbiExtension.php
@@ -0,0 +1,248 @@
+<?php
+/**
+ * Contract for every database extension supported by phpMyAdmin
+ *
+ * @package PhpMyAdmin-DBI
+ */
+declare(strict_types=1);
+
+namespace PhpMyAdmin\Dbi;
+
+/**
+ * Contract for every database extension supported by phpMyAdmin
+ *
+ * @package PhpMyAdmin-DBI
+ */
+interface DbiExtension
+{
+ /**
+ * connects to the database server
+ *
+ * @param string $user user name
+ * @param string $password user password
+ * @param array $server host/port/socket/persistent
+ *
+ * @return mixed false on error or a connection object on success
+ */
+ public function connect(
+ $user,
+ $password,
+ array $server
+ );
+
+ /**
+ * selects given database
+ *
+ * @param string $dbname database name to select
+ * @param resource $link connection object
+ *
+ * @return boolean
+ */
+ public function selectDb($dbname, $link);
+
+ /**
+ * runs a query and returns the result
+ *
+ * @param string $query query to execute
+ * @param resource $link connection object
+ * @param int $options query options
+ *
+ * @return mixed result
+ */
+ public function realQuery($query, $link, $options);
+
+ /**
+ * Run the multi query and output the results
+ *
+ * @param resource $link connection object
+ * @param string $query multi query statement to execute
+ *
+ * @return array|bool
+ */
+ public function realMultiQuery($link, $query);
+
+ /**
+ * returns array of rows with associative and numeric keys from $result
+ *
+ * @param object $result result set identifier
+ *
+ * @return array
+ */
+ public function fetchArray($result);
+
+ /**
+ * returns array of rows with associative keys from $result
+ *
+ * @param object $result result set identifier
+ *
+ * @return array
+ */
+ public function fetchAssoc($result);
+
+ /**
+ * returns array of rows with numeric keys from $result
+ *
+ * @param object $result result set identifier
+ *
+ * @return array
+ */
+ public function fetchRow($result);
+
+ /**
+ * Adjusts the result pointer to an arbitrary row in the result
+ *
+ * @param object $result database result
+ * @param integer $offset offset to seek
+ *
+ * @return bool true on success, false on failure
+ */
+ public function dataSeek($result, $offset);
+
+ /**
+ * Frees memory associated with the result
+ *
+ * @param object $result database result
+ *
+ * @return void
+ */
+ public function freeResult($result);
+
+ /**
+ * Check if there are any more query results from a multi query
+ *
+ * @param resource $link the connection object
+ *
+ * @return bool true or false
+ */
+ public function moreResults($link);
+
+ /**
+ * Prepare next result from multi_query
+ *
+ * @param resource $link the connection object
+ *
+ * @return bool true or false
+ */
+ public function nextResult($link);
+
+ /**
+ * Store the result returned from multi query
+ *
+ * @param resource $link mysql link
+ *
+ * @return mixed false when empty results / result set when not empty
+ */
+ public function storeResult($link);
+
+ /**
+ * Returns a string representing the type of connection used
+ *
+ * @param resource $link mysql link
+ *
+ * @return string type of connection used
+ */
+ public function getHostInfo($link);
+
+ /**
+ * Returns the version of the MySQL protocol used
+ *
+ * @param resource $link mysql link
+ *
+ * @return integer version of the MySQL protocol used
+ */
+ public function getProtoInfo($link);
+
+ /**
+ * returns a string that represents the client library version
+ *
+ * @param resource $link mysql link
+ *
+ * @return string MySQL client library version
+ */
+ public function getClientInfo($link);
+
+ /**
+ * returns last error message or false if no errors occurred
+ *
+ * @param resource $link connection link
+ *
+ * @return string|bool error or false
+ */
+ public function getError($link);
+
+ /**
+ * returns the number of rows returned by last query
+ *
+ * @param object $result result set identifier
+ *
+ * @return string|int
+ */
+ public function numRows($result);
+
+ /**
+ * returns the number of rows affected by last query
+ *
+ * @param resource $link the connection object
+ *
+ * @return int
+ */
+ public function affectedRows($link);
+
+ /**
+ * returns metainfo for fields in $result
+ *
+ * @param object $result result set identifier
+ *
+ * @return array meta info for fields in $result
+ */
+ public function getFieldsMeta($result);
+
+ /**
+ * return number of fields in given $result
+ *
+ * @param object $result result set identifier
+ *
+ * @return int field count
+ */
+ public function numFields($result);
+
+ /**
+ * returns the length of the given field $i in $result
+ *
+ * @param object $result result set identifier
+ * @param int $i field
+ *
+ * @return int|bool length of field
+ */
+ public function fieldLen($result, $i);
+
+ /**
+ * returns name of $i. field in $result
+ *
+ * @param object $result result set identifier
+ * @param int $i field
+ *
+ * @return string name of $i. field in $result
+ */
+ public function fieldName($result, $i);
+
+ /**
+ * returns concatenated string of human readable field flags
+ *
+ * @param object $result result set identifier
+ * @param int $i field
+ *
+ * @return string field flags
+ */
+ public function fieldFlags($result, $i);
+
+ /**
+ * returns properly escaped string for use in MySQL queries
+ *
+ * @param mixed $link database link
+ * @param string $str string to be escaped
+ *
+ * @return string a MySQL escaped string
+ */
+ public function escapeString($link, $str);
+}