Utiliser bind_result() à la place de get_result()

Petit nouveau ! | 1 Messages

26 nov. 2018, 10:41

Bonjour,

Je suis nouveau en php et je suis en train de concevoir un petit programme intégrant un panier d'achat.
J'ai eu un code sur un site que j'ai modifie et qui marche très bien en local.
Le problème, lorsque j'upload tout sur mon hébergement OVH, il m'indique une erreur avec la fonction get_result().
Call to undefined method mysqli_stmt::get_result().
Après des recherches, apparement, mon hébergement OVH ( je suis en mutu - PHP 5.5 ) ne prend pas en compte Mysqlnd avec cette version de PHP ( peut-être que je me trompe), c'est ce qui ferait que la fonction get_result() ne s'exécute pas.

Je souhaite donc utiliser la fonction bind_result() car c'est elle qui pourrait marcher sans Mysqlnd sur mon mutu mais je cale. Après plusieurs recherches, je n'arrive pas à récrire la fonction. J'ai besoin de votre aide svp pour réecrire la fonction avec bind_result(). Merci d'avance

Voici la fonction de base:
 function getDBResult($query, $params = array())
    {
        $sql_statement = $this->conn->prepare($query);
        if (! empty($params)) {
            $this->bindParams($sql_statement, $params);
        }
       $sql_statement->execute();
        $result = $sql_statement->get_result();      
        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                $resultset[] = $row;
            }
        }      
        if (! empty($resultset)) {
            return $resultset;
        }
    }

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

28 nov. 2018, 02:05

Bonjour,

Fais d'abord un phpinfo() pour vérifier que tu aies bien mysqli.
Si tu ne l'as pas, contacte OVH (ou regarde dans leur doc) pour avoir une version plus récente de PHP.
Si tu peux passer en PHP 7, fais le, tu auras une grosse augmentation de performance.
Quand tout le reste a échoué, lisez le mode d'emploi...