Skip to content

Commit

Permalink
Replace mysql_* with mysqli_* for PHP 5.5 compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
haraldpdl committed Aug 29, 2013
1 parent 410ea5d commit 0064f6c
Show file tree
Hide file tree
Showing 2 changed files with 170 additions and 43 deletions.
111 changes: 89 additions & 22 deletions catalog/admin/includes/functions/database.php
Expand Up @@ -5,7 +5,7 @@
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2007 osCommerce
Copyright (c) 2013 osCommerce
Released under the GNU General Public License
*/
Expand All @@ -14,20 +14,18 @@ function tep_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $pa
global $$link;

if (USE_PCONNECT == 'true') {
$$link = mysql_pconnect($server, $username, $password);
} else {
$$link = mysql_connect($server, $username, $password);
$server = 'p:' . $server;
}

if ($$link) mysql_select_db($database);
$$link = mysqli_connect($server, $username, $password, $database);

return $$link;
}

function tep_db_close($link = 'db_link') {
global $$link;

return mysql_close($$link);
return mysqli_close($$link);
}

function tep_db_error($query, $errno, $error) {
Expand All @@ -42,10 +40,10 @@ function tep_db_query($query, $link = 'db_link') {
$logger->write($query, 'QUERY');
}

$result = mysql_query($query, $$link) or tep_db_error($query, mysql_errno(), mysql_error());
$result = mysqli_query($$link, $query) or tep_db_error($query, mysqli_errno($$link), mysqli_error($$link));

if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
if (mysql_error()) $logger->write(mysql_error(), 'ERROR');
if (mysqli_error($$link)) $logger->write(mysqli_error($llink), 'ERROR');
}

return $result;
Expand Down Expand Up @@ -96,33 +94,40 @@ function tep_db_perform($table, $data, $action = 'insert', $parameters = '', $li
}

function tep_db_fetch_array($db_query) {
return mysql_fetch_array($db_query, MYSQL_ASSOC);
return mysqli_fetch_array($db_query, MYSQLI_ASSOC);
}

function tep_db_result($result, $row, $field = '') {
return mysql_result($result, $row, $field);
if ( $field === '' ) {
$field = 0;
}

tep_db_data_seek($result, $row);
$data = tep_db_fetch_array($result);

return $data[$field];
}

function tep_db_num_rows($db_query) {
return mysql_num_rows($db_query);
return mysqli_num_rows($db_query);
}

function tep_db_data_seek($db_query, $row_number) {
return mysql_data_seek($db_query, $row_number);
return mysqli_data_seek($db_query, $row_number);
}

function tep_db_insert_id($link = 'db_link') {
global $$link;

return mysql_insert_id($$link);
return mysqli_insert_id($$link);
}

function tep_db_free_result($db_query) {
return mysql_free_result($db_query);
return mysqli_free_result($db_query);
}

function tep_db_fetch_fields($db_query) {
return mysql_fetch_field($db_query);
return mysqli_fetch_field($db_query);
}

function tep_db_output($string) {
Expand All @@ -132,13 +137,7 @@ function tep_db_output($string) {
function tep_db_input($string, $link = 'db_link') {
global $$link;

if (function_exists('mysql_real_escape_string')) {
return mysql_real_escape_string($string, $$link);
} elseif (function_exists('mysql_escape_string')) {
return mysql_escape_string($string);
}

return addslashes($string);
return mysqli_real_escape_string($$link, $string);
}

function tep_db_prepare_input($string) {
Expand All @@ -154,4 +153,72 @@ function tep_db_prepare_input($string) {
return $string;
}
}

if ( !function_exists('mysqli_connect') ) {
define('MYSQLI_ASSOC', MYSQL_ASSOC);

function mysqli_connect($server, $username, $password, $database) {
if ( substr($server, 0, 2) == 'p:' ) {
$link = mysql_pconnect(substr($server, 2), $username, $password);
} else {
$link = mysql_connect($server, $username, $password);
}

if ( $link ) {
mysql_select_db($database, $link);
}

return $link;
}

function mysqli_close($link) {
return mysql_close($link);
}

function mysqli_query($link, $query) {
return mysql_query($query, $link);
}

function mysqli_errno($link) {
return mysql_errno($link);
}

function mysqli_error($link) {
return mysql_error($link);
}

function mysqli_fetch_array($query, $type) {
return mysql_fetch_array($query, $type);
}

function mysqli_num_rows($query) {
return mysql_num_rows($query);
}

function mysqli_data_seek($query, $offset) {
return mysql_data_seek($query, $offsetr);
}

function mysqli_insert_id($link) {
return mysql_insert_id($link);
}

function mysqli_free_result($query) {
return mysql_free_result($query);
}

function mysqli_fetch_field($query) {
return mysql_fetch_field($query);
}

function mysqli_real_escape_string($link, $string) {
if ( function_exists('mysql_real_escape_string') ) {
return mysql_real_escape_string($string, $link);
} elseif ( function_exists('mysql_escape_string') ) {
return mysql_escape_string($string);
}

return addslashes($string);
}
}
?>
102 changes: 81 additions & 21 deletions catalog/includes/functions/database.php
Expand Up @@ -5,7 +5,7 @@
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2007 osCommerce
Copyright (c) 2013 osCommerce
Released under the GNU General Public License
*/
Expand All @@ -14,20 +14,18 @@ function tep_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $pa
global $$link;

if (USE_PCONNECT == 'true') {
$$link = mysql_pconnect($server, $username, $password);
} else {
$$link = mysql_connect($server, $username, $password);
$server = 'p:' . $server;
}

if ($$link) mysql_select_db($database);
$$link = mysqli_connect($server, $username, $password, $database);

return $$link;
}

function tep_db_close($link = 'db_link') {
global $$link;

return mysql_close($$link);
return mysqli_close($$link);
}

function tep_db_error($query, $errno, $error) {
Expand All @@ -41,10 +39,10 @@ function tep_db_query($query, $link = 'db_link') {
error_log('QUERY ' . $query . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
}

$result = mysql_query($query, $$link) or tep_db_error($query, mysql_errno(), mysql_error());
$result = mysqli_query($$link, $query) or tep_db_error($query, mysqli_errno($$link), mysqli_error($$link));

if (defined('STORE_DB_TRANSACTIONS') && (STORE_DB_TRANSACTIONS == 'true')) {
$result_error = mysql_error();
$result_error = mysqli_error($$link);
error_log('RESULT ' . $result . ' ' . $result_error . "\n", 3, STORE_PAGE_PARSE_TIME_LOG);
}

Expand Down Expand Up @@ -96,29 +94,29 @@ function tep_db_perform($table, $data, $action = 'insert', $parameters = '', $li
}

function tep_db_fetch_array($db_query) {
return mysql_fetch_array($db_query, MYSQL_ASSOC);
return mysqli_fetch_array($db_query, MYSQLI_ASSOC);
}

function tep_db_num_rows($db_query) {
return mysql_num_rows($db_query);
return mysqli_num_rows($db_query);
}

function tep_db_data_seek($db_query, $row_number) {
return mysql_data_seek($db_query, $row_number);
return mysqli_data_seek($db_query, $row_number);
}

function tep_db_insert_id($link = 'db_link') {
global $$link;

return mysql_insert_id($$link);
return mysqli_insert_id($$link);
}

function tep_db_free_result($db_query) {
return mysql_free_result($db_query);
return mysqli_free_result($db_query);
}

function tep_db_fetch_fields($db_query) {
return mysql_fetch_field($db_query);
return mysqli_fetch_field($db_query);
}

function tep_db_output($string) {
Expand All @@ -128,13 +126,7 @@ function tep_db_output($string) {
function tep_db_input($string, $link = 'db_link') {
global $$link;

if (function_exists('mysql_real_escape_string')) {
return mysql_real_escape_string($string, $$link);
} elseif (function_exists('mysql_escape_string')) {
return mysql_escape_string($string);
}

return addslashes($string);
return mysqli_real_escape_string($$link, $string);
}

function tep_db_prepare_input($string) {
Expand All @@ -150,4 +142,72 @@ function tep_db_prepare_input($string) {
return $string;
}
}

if ( !function_exists('mysqli_connect') ) {
define('MYSQLI_ASSOC', MYSQL_ASSOC);

function mysqli_connect($server, $username, $password, $database) {
if ( substr($server, 0, 2) == 'p:' ) {
$link = mysql_pconnect(substr($server, 2), $username, $password);
} else {
$link = mysql_connect($server, $username, $password);
}

if ( $link ) {
mysql_select_db($database, $link);
}

return $link;
}

function mysqli_close($link) {
return mysql_close($link);
}

function mysqli_query($link, $query) {
return mysql_query($query, $link);
}

function mysqli_errno($link) {
return mysql_errno($link);
}

function mysqli_error($link) {
return mysql_error($link);
}

function mysqli_fetch_array($query, $type) {
return mysql_fetch_array($query, $type);
}

function mysqli_num_rows($query) {
return mysql_num_rows($query);
}

function mysqli_data_seek($query, $offset) {
return mysql_data_seek($query, $offsetr);
}

function mysqli_insert_id($link) {
return mysql_insert_id($link);
}

function mysqli_free_result($query) {
return mysql_free_result($query);
}

function mysqli_fetch_field($query) {
return mysql_fetch_field($query);
}

function mysqli_real_escape_string($link, $string) {
if ( function_exists('mysql_real_escape_string') ) {
return mysql_real_escape_string($string, $link);
} elseif ( function_exists('mysql_escape_string') ) {
return mysql_escape_string($string);
}

return addslashes($string);
}
}
?>

0 comments on commit 0064f6c

Please sign in to comment.