У меня есть рабочий код, в котором используется оператор выбора SQL. Как статический фрагмент кода, он отлично работает, однако я хочу иметь возможность использовать в нем переменные. Итак, проводя мое исследование, все говорят, что вы должны использовать операторы PHP Prepare, чтобы все было в безопасности. Итак, мой старый код выглядит примерно так:
/*** MY OLD WORKING CODE ***/
/*** SQL Query ***/
$sql = "SELECT tickets.ref AS `Ticket Number` ......
.....BLAH................INTERVAL 30 DAY) AND
organizations.name = 'NAMEIWANTTOUSE' ";
/*** For Each Loop to Build Table ***/
foreach ($dbh->query($sql) as $row){
echo "<tr>";
echo "<td bgcolor=89FF95 align=center>".$row['Ticket Number']."</td>";
ETC..................
}
$sql->closeCursor();
Мой новый код, который я пытаюсь заставить работать ... кажется, ничего не делает. Я знаю, что я не слишком далеко зашел с этим, но я просто не могу понять, какую переменную я должен вставить в мой цикл FOREACH ... или я действительно правильно понял инструкцию PHP Prepare?
Есть какие-нибудь предложения?
/*** MY NEW NOT WORKING CODE ***/
/*** Variables ***/
$NAME = 'NAMEIWANTTOUSE';
$DAYS = '30';
/*** Prepare the SQL Query ***/
$stmt = $sql->prepare("SELECT tickets.ref AS `Ticket Number` .......
....BLAH................INTERVAL :DAYS DAY) AND
organizations.name = :NAME ");
$stmt->bindParam(":DAYS", $DAYS);
$stmt->bindParam(":NAME", $NAME);
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
/*** Put each return from SQL into a Variable? ***/
$MySQLQuery = $stmt->fetchAll();
/*** For Each Loop to Build Table ***/
foreach ($dbh->query($MySQLQuery) as $row){
echo "<tr>";
echo "<td>".$row['Ticket Number']."</td>";
ETC..................
}
$sql->closeCursor();
Спасибо