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'; $_GET['page'] = 'install';
return false; return false;
} }
$oConnection = mysql_connect(DB_SERVER, DB_LOGIN, DB_PASS); $oConnection = mysqli_connect(DB_SERVER, DB_LOGIN, DB_PASS);
if(!$oConnection) 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)); 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'; $_GET['page'] = 'install';
} }
setContext($oConnection);
return $oConnection; return $oConnection;
} }
function setContext(&$oConnection) function setContext()
{ {
global $oConnection;
//php settings //php settings
date_default_timezone_set(TIMEZONE); date_default_timezone_set(TIMEZONE);
ini_set('default_charset', TEXT_ENC); ini_set('default_charset', TEXT_ENC);
@@ -179,7 +180,7 @@ function setContext(&$oConnection)
mb_regex_encoding(TEXT_ENC); mb_regex_encoding(TEXT_ENC);
//Characters encoding //Characters encoding
mysql_set_charset(DB_ENC, $oConnection); mysqli_set_charset($oConnection, DB_ENC);
//Time zone //Time zone
$oNow = new DateTime(); $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', addMessage(getError(array( 'Base de données déjà présente',
'Choisissez un autre nom de base de donnés ou supprimez la', '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 else
{ {
@@ -453,15 +454,19 @@ function createBackUp($bDropDb)
{ {
$sQuery .= "\n\n".getUniqueValue("SHOW CREATE TABLE ".$sTable, 'Create Table').";".END_OF_QUERY; $sQuery .= "\n\n".getUniqueValue("SHOW CREATE TABLE ".$sTable, 'Create Table').";".END_OF_QUERY;
$oTable = getQuery("SELECT * FROM `{$sTable}`"); $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 .= "\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"; $sQuery .= ") \nVALUES\n";
$asValues = array(); $asValues = array();
while ($asTableRow = mysql_fetch_array($oTable, MYSQL_ASSOC)) while ($asTableRow = mysqli_fetch_array($oTable, MYSQLI_ASSOC))
{ {
cleanSql($asTableRow); cleanSql($asTableRow);
$asValues[] = "(".encapsulate($asTableRow, "'", false, ", ").")"; $asValues[] = "(".encapsulate($asTableRow, "'", false, ", ").")";
@@ -489,15 +494,15 @@ function restoreBackUp($sBackFilePath, &$oConnection)
if(checkBackup($sBackFilePath)) if(checkBackup($sBackFilePath))
{ {
$sFileContents = file_get_contents($sBackFilePath); $sFileContents = file_get_contents($sBackFilePath);
mysql_close($oConnection); mysqli_close($oConnection);
$oConnection = mysql_connect(DB_SERVER, DB_LOGIN, DB_PASS); $oConnection = mysqli_connect(DB_SERVER, DB_LOGIN, DB_PASS);
setContext($oConnection); setContext($oConnection);
$asQueries = array_filter(explode(END_OF_QUERY, str_replace(array("\r\n", "\n"), '', $sFileContents))); $asQueries = array_filter(explode(END_OF_QUERY, str_replace(array("\r\n", "\n"), '', $sFileContents)));
foreach($asQueries as $sQuery) foreach($asQueries as $sQuery)
{ {
setQuery($sQuery); setQuery($sQuery);
} }
mysql_select_db(DB_NAME,$oConnection); mysqli_select_db($oConnection, DB_NAME);
addFeed('RESTORE', DB_NAME, 'database', $sBackFilePath); 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')))); 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(); logMeOut();
@@ -685,16 +690,32 @@ function uploadFile($asFileInfo, $sDestFolder, $asAuthorizedFileExt)
//Database access & write functions //Database access & write functions
function cleanSql(&$oData) 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__) function getQuery($sQuery, $bDieOnError=true, $sTypeQuery=__FUNCTION__)
{ {
global $oConnection; global $oConnection;
$oResult = mysql_query($sQuery); $oResult = mysqli_query($oConnection, $sQuery);
if(!$oResult) 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); feedback($sError);
if($bDieOnError) if($bDieOnError)
{ {
@@ -711,7 +732,7 @@ function getArrayQuery($sQuery, $bStringOnly=false, $sTypeQuery=__FUNCTION__)
{ {
$asResult = array(); $asResult = array();
$oResult = getQuery($sQuery, true, $sTypeQuery); $oResult = getQuery($sQuery, true, $sTypeQuery);
while($asCurrentRow = mysql_fetch_array($oResult)) while($asCurrentRow = mysqli_fetch_array($oResult))
{ {
if($bStringOnly) if($bStringOnly)
{ {
@@ -725,7 +746,7 @@ function getUniqueQuery($sQuery, $asColumnName=array(), $bStringOnly=false, $sTy
{ {
$oResult = getQuery($sQuery, true, $sTypeQuery); $oResult = getQuery($sQuery, true, $sTypeQuery);
$asResult = array(); $asResult = array();
while($asCurrentRow = mysql_fetch_array($oResult)) while($asCurrentRow = mysqli_fetch_array($oResult))
{ {
if($bStringOnly) if($bStringOnly)
{ {
@@ -1058,7 +1079,7 @@ function getQcm($oQcmIds=false)
FROM ".QCM_TABLE. FROM ".QCM_TABLE.
$sQcmConstraint." $sQcmConstraint."
ORDER BY ".getId(QCM_TABLE)); 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]][QCM_TABLE] = $asQcms[QCM_TABLE];
$asResults[$asQcms['id_'.QCM_TABLE]]['id_'.USER_TABLE] = $asQcms['id_'.USER_TABLE]; $asResults[$asQcms['id_'.QCM_TABLE]]['id_'.USER_TABLE] = $asQcms['id_'.USER_TABLE];
@@ -1066,7 +1087,7 @@ function getQcm($oQcmIds=false)
FROM ".QUESTION_TABLE. FROM ".QUESTION_TABLE.
$sQcmConstraint." $sQcmConstraint."
ORDER BY ".getId(QUESTION_TABLE)); 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]][QUESTION_TABLE] = $asQuestion[QUESTION_TABLE];
$asResults[$asQcms['id_'.QCM_TABLE]][QUESTION_TABLE][$asQuestion['id_'.QUESTION_TABLE]]['image'] = $asQuestion['image']; $asResults[$asQcms['id_'.QCM_TABLE]][QUESTION_TABLE][$asQuestion['id_'.QUESTION_TABLE]]['image'] = $asQuestion['image'];
@@ -1075,7 +1096,7 @@ function getQcm($oQcmIds=false)
$sQcmConstraint." $sQcmConstraint."
".(($sQcmConstraint!='')?"AND":"WHERE")." id_".QUESTION_TABLE." = ".$asQuestion['id_'.QUESTION_TABLE]." ".(($sQcmConstraint!='')?"AND":"WHERE")." id_".QUESTION_TABLE." = ".$asQuestion['id_'.QUESTION_TABLE]."
ORDER BY ".getId(ANSWER_TABLE)); ORDER BY ".getId(ANSWER_TABLE));
while($asAnswer = mysql_fetch_array($oAnswer)) while($asAnswer = mysqli_fetch_array($oAnswer))
{ {
$asResults [$asQcms['id_'.QCM_TABLE]] $asResults [$asQcms['id_'.QCM_TABLE]]
[QUESTION_TABLE] [QUESTION_TABLE]
@@ -1215,7 +1236,7 @@ function getResults($aiInfoSelect)
".getSQLResultsConstraints($aiInfoSelect)." ".getSQLResultsConstraints($aiInfoSelect)."
ORDER BY ".QCM_TABLE.", grade, class, ".USER_TABLE."_last_name"); 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]]] $asResults [$asCurrentResult[$asOutputOrder[0]]]
[$asCurrentResult[$asOutputOrder[1]]] [$asCurrentResult[$asOutputOrder[1]]]

View File

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

View File

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

View File

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