[RESOLU] impossible d'extraire des données depuis mysql avec php 7.3

Petit nouveau ! | 2 Messages

26 août 2020, 16:38

Bonjour,

Je souhaite récupérer les éléments de commande d'un Woocommerce depuis la base de données pour les remettre en forme et à disposition de notre comptable sur un serveur. la version de php est 7.3 et ce qui fonctionnait sur php 5.6 ne fonctionne plus.
Voici l'exemple de code pourtant simpliste : (les * après from servent simplement à masquer le nom de ma base et le préfixe de table)

$query= »SELECT * FROM ***.***_postmeta »;
$result= $conn->query($query);
if(!$result) die (« Echec d’accès à la base de données : ».$conn->error);
$rows= $result->num_rows;
for ($j = 0; $j < $rows; ++$j)
{
$result->data_seek($j);
$row = $result->fetch_array(MYSQL_ASSOC);
echo $row[‘posts_id’]. »<br> »;
}

je n'ai pas d'erreur d'exécution, simplement le $row[‘posts_id’] qui est vide. Je ne comprends pas.
( si je la remplace par une chaîne de caractères, cela fonctionne ! )

Question bête :
Y'a t-il un changement d'écriture de ce type de variable depuis php 7 ???


Merci pour votre aide...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8555 Messages

26 août 2020, 19:24

Il faut que tu pousses ton debugage pour savoir à quel niveau ça plante.
var_dump($rows);
var_dump($row);
var_dump($result);
etc...
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 2 Messages

27 août 2020, 12:13

J'ai en fait compris que PHP 7.3 ( ou 7 tout court ) impose des requêtes mysqlli ou pdo.
L'erreur était l'emploi de MYSQL_ASSOC au lieu de MYSQLI_ASSOC
$row = $result->fetch_array(MYSQLI_ASSOC);
C'est résolu !
Merci ...