[RESOLU] resultat requete ok sous sql mais ko en php

Eléphant du PHP | 345 Messages

13 sept. 2024, 13:53

<?php
session_start();
require_once 'config.php';
$idMembreSession = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$sql= "SELECT COUNT(*) FROM map WHERE etat_batiment='NATIONALISÉ' AND nom_batiment='BOULANGERIE'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
$res = $pdostat->fetch();
if (!empty($res )) { 
$total= $res['total'];
}
var_dump($total);
?>
La requete est ok sous mysql mais retourne NULL dans php?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 sept. 2024, 19:38

Bonjour,

Pour aider au débugage, il faut que tu utilises la gestion d'erreur de PDO, par exemple en la mettant sur PDO::ERRMODE_WARNING pendant ton développement :
https://www.php.net/manual/fr/pdo.error-handling.php
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 345 Messages

14 sept. 2024, 10:48

config modifié
    $bdd = new PDO('mysql:host='.$host .';dbname='.$dbname, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING ));
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $bdd->exec("SET CHARACTER SET utf8");
mais pas plus d'info au niveau de l'erreur

Eléphant du PHP | 345 Messages

14 sept. 2024, 17:47

En fait le soucis venait du fetch.... :lol:
$sql= "SELECT COUNT(*) FROM map WHERE etat_batiment='NATIONALISÉ' AND nom_batiment='BOULANGERIE'";
$pdostat = $bdd->prepare($sql);
$pdostat->execute();
$res = $pdostat->fetchColumn();