summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSjoerd Maessen <github@sjoerdmaessen.nl>2020-01-09 18:58:36 +0100
committerGitHub <noreply@github.com>2020-01-09 18:58:36 +0100
commit20b54d70754f3356fa00aeaff09fa1004c8b08c2 (patch)
treec4aa7b97646ed7c0868ae1b47e3b8c6e488ecfad
parent31eb7d201e04eacf0222b00a8e9add0fbca4ff90 (diff)
parent107a332703e775774f3c2e2bd5203616d4d50e04 (diff)
downloadphp-mysql-mysqli-wrapper-20b54d70754f3356fa00aeaff09fa1004c8b08c2.zip
php-mysql-mysqli-wrapper-20b54d70754f3356fa00aeaff09fa1004c8b08c2.tar.gz
php-mysql-mysqli-wrapper-20b54d70754f3356fa00aeaff09fa1004c8b08c2.tar.bz2
Merge branch 'master' into mysql-select-db
-rw-r--r--mysql.php86
1 files changed, 57 insertions, 29 deletions
diff --git a/mysql.php b/mysql.php
index f7d6eb1..e4ffcba 100644
--- a/mysql.php
+++ b/mysql.php
@@ -30,7 +30,7 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
define('MYSQL_BOTH', MYSQLI_BOTH);
// Will contain the link identifier
- $link = null;
+ $__MYSQLI_WRAPPER_LINK = null;
/**
* Get the link identifier
@@ -41,8 +41,8 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
function getLinkIdentifier(mysqli $mysqli = null)
{
if (!$mysqli) {
- global $link;
- $mysqli = $link;
+ global $__MYSQLI_WRAPPER_LINK;
+ $mysqli = $__MYSQLI_WRAPPER_LINK;
}
return $mysqli;
@@ -58,10 +58,10 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
*/
function mysql_connect($server, $username, $password, $new_link = false, $client_flags = 0)
{
- global $link;
+ global $__MYSQLI_WRAPPER_LINK;
- $link = mysqli_connect($server, $username, $password);
- return $link;
+ $__MYSQLI_WRAPPER_LINK = mysqli_connect($server, $username, $password);
+ return $__MYSQLI_WRAPPER_LINK;
}
/**
@@ -74,10 +74,10 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
*/
function mysql_pconnect($server, $username, $password, $new_link = false, $client_flags = 0)
{
- global $link;
+ global $__MYSQLI_WRAPPER_LINK;
- $link = mysqli_connect('p:' . $server, $username, $password);
- return $link;
+ $__MYSQLI_WRAPPER_LINK = mysqli_connect('p:' . $server, $username, $password);
+ return $__MYSQLI_WRAPPER_LINK;
}
/**
@@ -108,7 +108,15 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
{
return getLinkIdentifier($mysqli)->escape_string($string);
}
-
+
+ /**
+ * @param $string
+ * @return string
+ */
+ function mysql_escape_string($string)
+ {
+ return mysql_real_escape_string($string);
+ }
/**
* @param mysqli_result $result
* @return bool|array
@@ -210,16 +218,19 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
}
/**
- * Not implemented
+ * Adjusts the result pointer to an arbitrary row in the result
*
- * @todo implement
- *
- * @return null
+ * @param $result
+ * @param $row
+ * @param int $field
+ * @return bool
*/
- function mysql_db_name()
+ function mysql_db_name(mysqli_result $result, $row, $field=null)
{
- trigger_error('The function mysql_db_name() is not implemented', E_USER_WARNING);
- return false;
+ mysqli_data_seek($result,$row);
+ $f = mysqli_fetch_row($result);
+
+ return $f[0];
}
/**
@@ -396,13 +407,15 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
* Get table name of field
*
* @param $result
- * @param $i
+ * @param $row
* @return bool
*/
- function mysql_tablename($result, $i)
+ function mysql_tablename(mysqli_result $result, $row)
{
- trigger_error('Not implemented', E_USER_WARNING);
- return false;
+ mysqli_data_seek($result, $row);
+ $f = mysqli_fetch_array($result);
+
+ return $f[0];
}
/**
@@ -487,8 +500,8 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
*/
function mysql_field_len(mysqli_result $result, $field_offset = 0)
{
- trigger_error('This function is not implemented', E_USER_WARNING);
- return false;
+ $fieldInfo = mysqli_fetch_field_direct($result, $field_offset);
+ return $fieldInfo->length;
}
/**
@@ -632,17 +645,32 @@ if (!extension_loaded('mysql') && !function_exists('mysql_connect')) {
/**
* Get the flags associated with the specified field in a result
*
- * @todo implement
+ * credit to Dave Smith from phpclasses.org, andre at koethur dot de from php.net and NinjaKC from stackoverflow.com
*
* @param mysqli_result $result
* @param int $field_offset
* @return bool
*/
- function mysql_field_flags(mysqli_result $result, $field_offset = 0)
- {
- trigger_error('This function is not implemented', E_USER_WARNING);
- return false;
- }
+ function mysql_field_flags(mysqli_result $result , $field_offset = 0)
+ {
+ $flags_num = mysqli_fetch_field_direct($result,$field_offset)->flags;
+
+ if (!isset($flags))
+ {
+ $flags = array();
+ $constants = get_defined_constants(true);
+ foreach ($constants['mysqli'] as $c => $n) if (preg_match('/MYSQLI_(.*)_FLAG$/', $c, $m)) if (!array_key_exists($n, $flags)) $flags[$n] = $m[1];
+ }
+
+ $result = array();
+ foreach ($flags as $n => $t) if ($flags_num & $n) $result[] = $t;
+
+ $return = implode(' ', $result);
+ $return = str_replace('PRI_KEY','PRIMARY_KEY',$return);
+ $return = strtolower($return);
+
+ return $return;
+ }
/**
* Set result pointer to a specified field offset