Я пытаюсь использовать цикл foreach для обновления базы данных с параметрами привязки PDO. Кажется, что все настроено по желанию, только проблема в запросе не выполняется и обновляет базу данных по своему усмотрению.Попытка вставить параметры привязки pdo в базу данных mysql
try {
$dbh = new PDO('mysql:host=localhost;dbname=Batik', 'root', 'root');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$table = $_SESSION['table'];
error_log($table);
parse_str($_POST['pages'], $pageOrder);
$query = "UPDATE $table SET `order` = ':key' WHERE `id` = ':value'";
$STH = $dbh->prepare($query);
foreach ($pageOrder['page'] as $key =>$value) {
error_log($key.$value);
$STH->bindParam(':value', $value);
$STH->bindParam(':key', $key);
//error_log(print_r($STH));
//error_log(var_dump($STH));
//error_log($STH->debugDumpParams());
$STH->execute();
}
} catch (PDOException $exception) {
echo "There was an error updating your information, please contact James for assistance. ";
error_log($exception->getMessage());
};
В error.log больше нет ошибок. Он просто не будет обновлять базу данных по своему усмотрению. У меня есть запрос, отлично работающий с mysql_query, но при переключении на PDO я потерял функциональность. Есть ли у кого-нибудь предложения по дальнейшим средствам отладки?
У вас есть таблица с именем '$ table'? вам нужно объединить эту строку .... и нет необходимости в одинарных кавычках вокруг заполнителей параметров –
нет разницы. Мой mysql_query использует ту же таблицу $ var var в запросе, и php правильно интерпретирует переменную. Если это не отличается от PDO. – Jimbob