Извините за мой английский, я французский: D,ошибка параметра PDO в подготовленном заявлении
Хорошо, я использую PDO для моей связи с MySQL, но у меня есть одна ошибка с PDO подготовить заявление.
Я пытаюсь включить мое имя таблицы в запросе подготовки, но у меня есть сообщение об ошибке:
Ошибка: SQLSTATE [42000]: Ошибка синтаксиса или нарушение прав доступа: 1064 У вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом с «» NbClient «LIMIT 2) как стер» в строке 1 Код ошибки: 42000
Мой код:
<html>
<head>
</head>
<body>
<?php
const HOST='localhost';
const DBNAME='GameWave';
const USER='';
const PASSWORD='';
const TABLE='NbClient';
echo GetNbClientByHour(2);
function GetNbClientByHour($nb_heure)
{
$hookConstTable = TABLE;
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$connexion = new PDO('mysql:host='.HOST.';dbname='.DBNAME, USER, PASSWORD, $pdo_options);
$prepare=$connexion->prepare('select SUM(record) from (select v_tot as record from :tab LIMIT :nb_heure) as sr;');
$prepare->bindParam(':tab', $hookConstTable, PDO::PARAM_STR);
$prepare->bindParam(':nb_heure', $nb_heure, PDO::PARAM_INT);
$prepare->execute();
$resultat = $prepare->fetch();
$prepare->closeCursor();
return $resultat[0];
}
catch(Exception $e)
{
echo 'Error : '.$e->getMessage().'<br />';
echo 'Error Code : '.$e->getCode();
}
}
?>
</body>
</html>
Но если я попытаюсь написать имя таблицы в запросе, ее работа ...
$prepare=$connexion->prepare('select SUM(record) from (select v_tot as record from NbClient LIMIT :nb_heure) as sr;');
$prepare->bindParam(':nb_heure', $nb_heure, PDO::PARAM_INT);
Не могли бы вы мне помочь?
Если ничего другого, почему бы просто не выбрать сумму (v_tot) как запись из nbclient'? Нет причин для подвыборки –