Requête MySQL vers celle en PDO avec PHP
Bonjour,
Il y a une requête mysql qui marche bien, mais j'aimerais bien la changer en PDO.
Voici la requête qui marche :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| $sql = <<<EOF
SELECT
YEAR(`DTHR_VENTE`) AS ANNEE,
COUNT(ID) AS NBR_VENTES
FROM `jp_graph_ventes`
GROUP BY YEAR(`DTHR_VENTE`)
EOF;
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('erreur de connxion');
@mysql_select_db(MYSQL_DATABASE) or die('pas bon BDD');
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('erreur de requête');
while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
$tableauAnnees_00[] = 'Année ' . $row['ANNEE'];
$tableauNombreVentes_00[] = $row['NBR_VENTES'];
}
var_dump($tableauAnnees_00);
echo '<p></p>';
die(var_dump($tableauNombreVentes_00)); |
et voici je ce que j'obtiens :
array (size=3)
0 => string 'Année 2004' (length=10)
1 => string 'Année 2005' (length=10)
2 => string 'Année 2006' (length=10)
array (size=3)
0 => string '7' (length=1)
1 => string '34' (length=2)
2 => string '68' (length=2)
alors j'ai changé le code pour avoir une requête PDO :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| /*
$sql = <<<EOF
SELECT
YEAR(`DTHR_VENTE`) AS ANNEE,
COUNT(ID) AS NBR_VENTES
FROM `jp_graph_ventes`
GROUP BY YEAR(`DTHR_VENTE`)
EOF;
$mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('erreur de connxion');
*/
try
{
$bdd = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e)
{
die('Erreur nconnection mysql : ' . $e->getMessage());
}
/*
@mysql_select_db(MYSQL_DATABASE) or die('pas bon BDD');
$mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('erreur de requête');
*/
$req = $bdd->prepare('SELECT YEAR (' . $champ_date . ') AS ANNEE,
COUNT (' . $champ_id . ') AS NBR_VENTES
FROM '. $tableData . '
GROUP BY YEAR (' . $champ_date . ')');
/*
while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
$tableauAnnees_00[] = 'Année ' . $row['ANNEE'];
$tableauNombreVentes_00[] = $row['NBR_VENTES'];
}
*/
//while ($donnees = $req->fetch())
while ($donnees = $req->fetch(PDO::FETCH_ASSOC))
//while ($donnees = $req->fetchAll())
//while ($donnees = $req->fetch(PDO::FETCH_BOTH))
//while ($donnees = $req->fetch(PDO::FETCH_LAZY))
//while ($donnees = $req->fetch(PDO::FETCH_OBJ))
{
$tableauAnnees_00[] = 'Année ' . $donnees['par_annee'];
$tableauNombreVentes_00[] = $row['combien'];
}
var_dump($tableauAnnees_00);
echo '<p></p>';
die(var_dump($tableauNombreVentes_00));
$req->closeCursor(); |
mais j'ai obtiens :
array (size=0)
empty
array (size=0)
empty
Donc je me demande si mon "fetch(PDO::FETCH_ASSOC))" n'est pas bon ?
while ($donnees = $req->fetch(PDO::FETCH_ASSOC))
Est-ce que vous pouvez m'aider ?
merci