Skip to content

WIP: Resolve "passer à ext/mysqli et abandonner ext/mysql"

Francois Gannaz requested to merge 12-mysqli into master

En l'état, c'est une résolution à minima. La fonction mysql_real_escape_string() est conservée dans le code, mais si ext/mysql est absent, elle est émulée. Le code reste donc compatible avec l'ancien environnement (présence de ext/mysql), et la différence de comportement de cette fonction est invisible (sauf sur les caractères UTF-8 que LabBook n'accepte de toutes façons pas encore).

Sur cette branche, j'ai pu faire tourner LabBook en PHP 7.0, autrement dit avec mysqli remplaçant mysql. Mais il faudra éplucher la doc de passage à PHP 7.0 avant de l'envisager sérieusement.

@dhamc Je mets en WIP notamment parce qu'il faudra figer tous les autres développements avant d'appliquer cette Merge Request. Comme il y a d'autres branches en cours, il vaut mieux attendre de les fusionner, puis retravailler cette branche avant de la fusionner dans "dev".

Détails techniques

Comme la syntaxe procédurale (non-objet) est marquée obsolète dans la doc de ext/mysqli, je suis passé à la syntaxe objet. En pratique, on remplace

$result = query($sql);
while ($o = mysql_fetch_object($result)) {
    echo $o->id_report;

par

$result = query($sql);
while ($o = $result->fetch_object()) {
    echo $o->id_report;

et si on veut lire les lignes sous forme de tableaux associatifs, on a $result->fetch_assoc() ou plus simplement

foreach (query($sql) as $row) {
    echo $row['id_report'];

Closes #12 (closed)

Edited by Francois Gannaz

Merge request reports