Erreur sur lignes lors migration fichier msql en mysqli
Posté : 27 juil. 2015, 10:59
Bonjour,
Je me suis retrouvé dans la situation où mon hébergeur a fait la mise à jour php5.5 et donc mon fichier en mysql n'est plus opérationnel.
J'ai effectué la migration à l'aide de mysql convert tool et 2 lignes de code apparaissent avec des problèmes.
Malgré mes recherches sur la toile et plusieurs essais infructueux depuis quelques jours, je m'en remets à vous demander de l'aide SVP.
Je vous livre les deux lignes avant et après modifications, avec les messages d'erreur.
Voici l'extrait avant avec pour message d'erreur : mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
//! Connect to the MySQL server
public function connect() {
$this->link = @mysql_connect($this->host,$this->user,$this->password);
if (!$this->link)
throw new Exception("Cannot connect to the database.");
$this->selectDB($this->dbname);
$this->connected = true;
}
public function selectDB ($dbname) {
if (!@mysql_select_db($dbname,$this->link))
throw new Exception("This database ($dbname) doesn't exist.");
}
public function getVersion () {
if (!$this->connected)
$this->connect();
return mysql_get_server_info($this->link);
Voici l'extrait après modifications avec pour message d'erreur : Line Message
44 [Line 44] Cannot analyze server parameter to extract host, socket and port! Conversion cannot be performed automatically. You must manually check the result of the conversion.
52 [Line 52] mysql_select_db(string database_name [...]) is emulated using mysqli_query() and USE database_name. This is a possible SQL injection security bug as no tests are performed what value database_name has. Check your script!
Generated Code
//! Connect to the MySQL server
public function connect() {
$this->link = @($GLOBALS["___mysqli_ston"] = mysqli_connect($this->host, $this->user, $this->password));
if (!$this->link)
throw new Exception("Cannot connect to the database.");
$this->selectDB($this->dbname);
$this->connected = true;
}
public function selectDB ($dbname) {
if (!@((bool)mysqli_query($this->link, "USE " . $dbname)))
throw new Exception("This database ($dbname) doesn't exist.");
}
public function getVersion () {
if (!$this->connected)
$this->connect();
return ((is_null($___mysqli_res = mysqli_get_server_info($this->link))) ? false : $___mysqli_res);
}
Voilà pour les "problèmes".
Merci d'avance pour votre éventuelle réponse.
Cordialement
Je me suis retrouvé dans la situation où mon hébergeur a fait la mise à jour php5.5 et donc mon fichier en mysql n'est plus opérationnel.
J'ai effectué la migration à l'aide de mysql convert tool et 2 lignes de code apparaissent avec des problèmes.
Malgré mes recherches sur la toile et plusieurs essais infructueux depuis quelques jours, je m'en remets à vous demander de l'aide SVP.
Je vous livre les deux lignes avant et après modifications, avec les messages d'erreur.
Voici l'extrait avant avec pour message d'erreur : mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
//! Connect to the MySQL server
public function connect() {
$this->link = @mysql_connect($this->host,$this->user,$this->password);
if (!$this->link)
throw new Exception("Cannot connect to the database.");
$this->selectDB($this->dbname);
$this->connected = true;
}
public function selectDB ($dbname) {
if (!@mysql_select_db($dbname,$this->link))
throw new Exception("This database ($dbname) doesn't exist.");
}
public function getVersion () {
if (!$this->connected)
$this->connect();
return mysql_get_server_info($this->link);
Voici l'extrait après modifications avec pour message d'erreur : Line Message
44 [Line 44] Cannot analyze server parameter to extract host, socket and port! Conversion cannot be performed automatically. You must manually check the result of the conversion.
52 [Line 52] mysql_select_db(string database_name [...]) is emulated using mysqli_query() and USE database_name. This is a possible SQL injection security bug as no tests are performed what value database_name has. Check your script!
Generated Code
//! Connect to the MySQL server
public function connect() {
$this->link = @($GLOBALS["___mysqli_ston"] = mysqli_connect($this->host, $this->user, $this->password));
if (!$this->link)
throw new Exception("Cannot connect to the database.");
$this->selectDB($this->dbname);
$this->connected = true;
}
public function selectDB ($dbname) {
if (!@((bool)mysqli_query($this->link, "USE " . $dbname)))
throw new Exception("This database ($dbname) doesn't exist.");
}
public function getVersion () {
if (!$this->connected)
$this->connect();
return ((is_null($___mysqli_res = mysqli_get_server_info($this->link))) ? false : $___mysqli_res);
}
Voilà pour les "problèmes".
Merci d'avance pour votre éventuelle réponse.
Cordialement