kemply
@kemply
школьник

Почему не работает PDO?

Если выполнить запрос обычным PDO query, то он работает:
$char = $page->for;

foreach( $_POST as $key => $value ){
  $value = str_replace("'", "\'", $value);
  $connect->query("UPDATE `keys` SET `value` = '$value' WHERE `name` = '$key' AND `for` = '$char'");
}


А если через prepare, то Не работает:
$char = $page->for;

    $query = $connect->prepare("UPDATE keys SET value = :v WHERE name = :n AND for = :c");
    $query->bindParam(':c', $char);

    foreach( $_POST as $key => $value ){
      $query->bindParam(':v', $value);
      $query->bindParam(':n', $key);
      $query->execute();

    }
  • Вопрос задан
  • 1234 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Потому что KEYS, VALUE, NAME и FOR - зарезервированные слова MySQL. Хотите их использовать как имена таблиц или полей - берите в обратные апострофы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Hatsune-Miku
@Hatsune-Miku
Няшк :3
Можно же просто передать $_POST в execute()...
Ответ написан
Комментировать
VladimirAndreev
@VladimirAndreev
php web dev
Потому что sql запросы разные. ` имеют очень большое значение
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы