replace mysql with mysqli

This commit is contained in:
2017-06-26 13:59:30 +12:00
parent 4eb008461a
commit 1dbfa2a243
5 changed files with 52 additions and 29 deletions

1
current_version/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/settings.php

View File

@@ -152,22 +152,23 @@ function connection()
$_GET['page'] = 'install';
return false;
}
$oConnection = mysql_connect(DB_SERVER, DB_LOGIN, DB_PASS);
$oConnection = mysqli_connect(DB_SERVER, DB_LOGIN, DB_PASS);
if(!$oConnection)
{
addMessage(getError(array('La connexion à la base de donnée a échouée', 'Vérifiez les paramètres dans '.SETTINGS_FILE, 'Détails : '.mysql_error()), true));
addMessage(getError(array('La connexion à la base de donnée a échouée', 'Vérifiez les paramètres dans '.SETTINGS_FILE, 'Détails : '.mysqli_connect_error()), true));
}
elseif(!mysql_select_db(DB_NAME, $oConnection))
elseif(!mysqli_select_db($oConnection, DB_NAME))
{
addMessage(getError(array('Impossible de sélectionner la base de données "'.DB_NAME.'"', 'Changez les constantes dans le fichier "'.SETTINGS_FILE.'" ou réinstaller la base de données'), true));
$_GET['page'] = 'install';
}
setContext($oConnection);
return $oConnection;
}
function setContext(&$oConnection)
function setContext()
{
global $oConnection;
//php settings
date_default_timezone_set(TIMEZONE);
ini_set('default_charset', TEXT_ENC);
@@ -179,7 +180,7 @@ function setContext(&$oConnection)
mb_regex_encoding(TEXT_ENC);
//Characters encoding
mysql_set_charset(DB_ENC, $oConnection);
mysqli_set_charset($oConnection, DB_ENC);
//Time zone
$oNow = new DateTime();
@@ -322,11 +323,11 @@ function install(&$oConnection, $sDbName, $asAdminsInfo, $bDropDb=true)
{
addMessage(getError(array( 'Base de données déjà présente',
'Choisissez un autre nom de base de donnés ou supprimez la',
'Détails : '.mysql_error()), true));
'Détails : '.mysqli_error($oConnection)), true));
}
elseif(!mysql_select_db($sDbName, $oConnection)) //select database
elseif(!mysqli_select_db($oConnection, $sDbName)) //select database
{
addMessage(getError(array('Sélection de la database "'.$sDbName.'" impossible', 'Détails : '.mysql_error()), true));
addMessage(getError(array('Sélection de la database "'.$sDbName.'" impossible', 'Détails : '.mysqli_error($oConnection)), true));
}
else
{
@@ -453,15 +454,19 @@ function createBackUp($bDropDb)
{
$sQuery .= "\n\n".getUniqueValue("SHOW CREATE TABLE ".$sTable, 'Create Table').";".END_OF_QUERY;
$oTable = getQuery("SELECT * FROM `{$sTable}`");
if(mysql_num_rows($oTable) > 0)
if(mysqli_num_rows($oTable) > 0)
{
$iColumnNb = mysql_num_fields($oTable);
$iColumnNb = mysqli_num_fields($oTable);
$sQuery .= "\n\n"."INSERT INTO `{$sTable}` \n(";
$sQuery .= encapsulate(array_map('mysql_field_name', array_fill(0, $iColumnNb, $oTable), range(0, $iColumnNb-1)), "`", false, ", ");
$asFields = array();
for($iFieldNb=0; $iFieldNb<$iColumnNb; $iFieldNb++) $asFields[] = mysqli_fetch_field_direct($oTable, $iFieldNb)->name;
$sQuery .= encapsulate($asFields, "`", false, ", ");
$sQuery .= ") \nVALUES\n";
$asValues = array();
while ($asTableRow = mysql_fetch_array($oTable, MYSQL_ASSOC))
while ($asTableRow = mysqli_fetch_array($oTable, MYSQLI_ASSOC))
{
cleanSql($asTableRow);
$asValues[] = "(".encapsulate($asTableRow, "'", false, ", ").")";
@@ -489,15 +494,15 @@ function restoreBackUp($sBackFilePath, &$oConnection)
if(checkBackup($sBackFilePath))
{
$sFileContents = file_get_contents($sBackFilePath);
mysql_close($oConnection);
$oConnection = mysql_connect(DB_SERVER, DB_LOGIN, DB_PASS);
mysqli_close($oConnection);
$oConnection = mysqli_connect(DB_SERVER, DB_LOGIN, DB_PASS);
setContext($oConnection);
$asQueries = array_filter(explode(END_OF_QUERY, str_replace(array("\r\n", "\n"), '', $sFileContents)));
foreach($asQueries as $sQuery)
{
setQuery($sQuery);
}
mysql_select_db(DB_NAME,$oConnection);
mysqli_select_db($oConnection, DB_NAME);
addFeed('RESTORE', DB_NAME, 'database', $sBackFilePath);
addMessage(getSuccess(array('Base restor&eacute;e', 'Fichier charg&eacute; : '.$sBackFilePath, getHtml('Pour des raisons de s&eacute;curit&eacute;, vous allez &ecirc;tre d&eacute;connect&eacute;', 'strong'))));
logMeOut();
@@ -685,16 +690,32 @@ function uploadFile($asFileInfo, $sDestFolder, $asAuthorizedFileExt)
//Database access & write functions
function cleanSql(&$oData)
{
cleanData($oData, 'mysql_real_escape_string');
global $oConnection;
if(!is_array($oData))
{
$oData = mysqli_real_escape_string($oConnection, $oData);
}
elseif(count($oData)>0)
{
$asKeys = array();
$asValues = array();
foreach($oData as $sKey=>$sValue)
{
$asKeys[] = mysqli_real_escape_string($oConnection, $sKey);
$asValues[] = mysqli_real_escape_string($oConnection, $sValue);
}
$oData = array_combine($asKeys, $asValues);
}
}
function getQuery($sQuery, $bDieOnError=true, $sTypeQuery=__FUNCTION__)
{
global $oConnection;
$oResult = mysql_query($sQuery);
$oResult = mysqli_query($oConnection, $sQuery);
if(!$oResult)
{
$sError = getError(array("Requ&ecirc;te {$sTypeQuery}", 'mysql : '.mysql_error(), 'query : '.$sQuery), true);
$sError = getError(array("Requ&ecirc;te {$sTypeQuery}", 'mysql : '.mysqli_error($oConnection), 'query : '.$sQuery), true);
feedback($sError);
if($bDieOnError)
{
@@ -711,7 +732,7 @@ function getArrayQuery($sQuery, $bStringOnly=false, $sTypeQuery=__FUNCTION__)
{
$asResult = array();
$oResult = getQuery($sQuery, true, $sTypeQuery);
while($asCurrentRow = mysql_fetch_array($oResult))
while($asCurrentRow = mysqli_fetch_array($oResult))
{
if($bStringOnly)
{
@@ -725,7 +746,7 @@ function getUniqueQuery($sQuery, $asColumnName=array(), $bStringOnly=false, $sTy
{
$oResult = getQuery($sQuery, true, $sTypeQuery);
$asResult = array();
while($asCurrentRow = mysql_fetch_array($oResult))
while($asCurrentRow = mysqli_fetch_array($oResult))
{
if($bStringOnly)
{
@@ -1058,7 +1079,7 @@ function getQcm($oQcmIds=false)
FROM ".QCM_TABLE.
$sQcmConstraint."
ORDER BY ".getId(QCM_TABLE));
while($asQcms = mysql_fetch_array($oQcm))
while($asQcms = mysqli_fetch_array($oQcm))
{
$asResults[$asQcms['id_'.QCM_TABLE]][QCM_TABLE] = $asQcms[QCM_TABLE];
$asResults[$asQcms['id_'.QCM_TABLE]]['id_'.USER_TABLE] = $asQcms['id_'.USER_TABLE];
@@ -1066,7 +1087,7 @@ function getQcm($oQcmIds=false)
FROM ".QUESTION_TABLE.
$sQcmConstraint."
ORDER BY ".getId(QUESTION_TABLE));
while($asQuestion = mysql_fetch_array($oQuestion))
while($asQuestion = mysqli_fetch_array($oQuestion))
{
$asResults[$asQcms['id_'.QCM_TABLE]][QUESTION_TABLE][$asQuestion['id_'.QUESTION_TABLE]][QUESTION_TABLE] = $asQuestion[QUESTION_TABLE];
$asResults[$asQcms['id_'.QCM_TABLE]][QUESTION_TABLE][$asQuestion['id_'.QUESTION_TABLE]]['image'] = $asQuestion['image'];
@@ -1075,7 +1096,7 @@ function getQcm($oQcmIds=false)
$sQcmConstraint."
".(($sQcmConstraint!='')?"AND":"WHERE")." id_".QUESTION_TABLE." = ".$asQuestion['id_'.QUESTION_TABLE]."
ORDER BY ".getId(ANSWER_TABLE));
while($asAnswer = mysql_fetch_array($oAnswer))
while($asAnswer = mysqli_fetch_array($oAnswer))
{
$asResults [$asQcms['id_'.QCM_TABLE]]
[QUESTION_TABLE]
@@ -1215,7 +1236,7 @@ function getResults($aiInfoSelect)
".getSQLResultsConstraints($aiInfoSelect)."
ORDER BY ".QCM_TABLE.", grade, class, ".USER_TABLE."_last_name");
while($asCurrentResult = mysql_fetch_array($oResults))
while($asCurrentResult = mysqli_fetch_array($oResults))
{
$asResults [$asCurrentResult[$asOutputOrder[0]]]
[$asCurrentResult[$asOutputOrder[1]]]

View File

@@ -24,6 +24,7 @@ session_start();
$sScriptStartTime = microtime();
require_once('config.php');
$oConnection = connection();
setContext();
//clean data
cleanPost($_POST);
@@ -110,7 +111,7 @@ $asGeneralDisplay['version'] = $sLogLink;
//close SQL connection
if($oConnection)
{
mysql_close($oConnection);
mysqli_close($oConnection);
}
//combine main part

View File

@@ -20,7 +20,7 @@ if(isset($_POST['READY_TO_USE']))
{
unlink(SETTINGS_FILE);
}
$oConnection = @mysql_connect($sDbServer, $sDbLogin, $_POST['DB_PASS']);
$oConnection = @mysqli_connect($sDbServer, $sDbLogin, $_POST['DB_PASS']);
if(!$oConnection)
{
addMessage(getError(array('Connexion impossible', 'V&eacute;rifier les identifiants')));

View File

@@ -334,7 +334,7 @@ a.deleteQuestion, a.deleteImage {
position:absolute;
margin-top:10px;
margin-left:-22px;
border-radius:0 5px; -moz-border-radius:0 5px; -webkit-border-radius:0 5px;
border-radius:0 5px 0 5px; -moz-border-radius:0 5px 0 5px; -webkit-border-radius:0 5px 0 5px;
}
a.deleteAnswer {
position:absolute;
@@ -342,7 +342,7 @@ a.deleteAnswer {
border-radius:0 5px 5px 0; -moz-border-radius:0 5px 5px 0; -webkit-border-radius:0 5px 5px 0;
}
a.deleteImage {
margin-top:139px;
margin-top:118px;
margin-right:0;
}
a.XButton {