Не уверен, почему это подготовленное заявление не работает - PullRequest
0 голосов
/ 07 января 2012

По какой-то причине это просто не вставляется в мою базу данных ...

HTML

<form name="testimonials_form" method="post" action="insert/">
  Name
  <input type="text" name="from" maxlegnth="100" />
  Location
  <input type="text" name="where" maxlegnth="100" />
  Text Snippet
  <input type="text" name="text" maxlegnth="255">
  <input type="submit" name="submit" value="Continue" />
</form>

PHP

<?php

$from = $_POST['from'];
$where = $_POST['where'];
$text = $_POST['text'];

if (!$from || !$where || !$text) {
  $error = "You have missed some fields.";
  $solution = "Please go back and <a href=\"javascript:history.go(-1)\" target=\"_self\">try again</a>.";
} else {
  $data_array = array(':from' => $from, ':where' => $where, ':text' => $text);

  $insert_testimonial = $connect->prepare("
  INSERT INTO `testimonials` (
      text, from, where
  ) VALUES (
      :text, :from, :where
  )
  ");

  $insert_testimonial->execute($data_array);

  $amount = $insert_testimonial->rowCount();

  if ($amount < 1) {
    $error = "Something went wrong.";
    $solution = "Please go back and <a href=\"javascript:history.go(-1)\" target=\"_self\">try again</a>.";
  } else {
    header ("Location: ../");
  }
}

?>

Все, что я продолжаю получать, это моя ошибка "Что-то пошло не так". так что нет ошибки 500 (внутренняя ошибка сервера), и если я отображаю $ from, $ where и $ text, он отображает то, что я набрал в форме, я перезаписал бы это примерно 5 раз, если я написал неправильно или что-то еще, но все еще не повезло. Я знаю, что не может быть символа, отсутствующего или в неправильном месте, так как он вернет ошибку 500.

Кто-нибудь знает, что с этим? Я написал такие коды бесчисленное количество раз, но, похоже, это не работает, поэтому я, должно быть, что-то упустил.

1 Ответ

1 голос
/ 07 января 2012
from, where

в вашем запросе должно быть

`from`, `where`

, поскольку from и where являются зарезервированными словами в MySQL:

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

Между прочим, это неприятные ощущения.IMO, вам лучше не использовать эти слова в качестве имен столбцов, но если вы это сделаете, вам чаще всего нужно использовать обратные пометки.

...