Не удалось вставить данные в MySQL с помощью PHP

#php #mysql

#php #mysql

Вопрос:

Вот мой запрос на вставку.

 $insertQuery = "INSERT INTO timeline (id_str, from_user, text, timestamp, location) VALUES ($resultsAry[$x]['id_str'], $resultsAry[$x]['from_user'], $resultsAry[$x]['text'], $datetime, $locationAry[$i]['place'])";
  

Значения, передаваемые в запрос, кажутся правильными (проверяется повторением всех значений). Но я получил следующую ошибку.

Insert failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '['id_str'], Array['from_user'], Array['text'], 2011-05-23 18:58:27, Array['place' at line 1

Пожалуйста, помогите?

Комментарии:

1. Я думаю, вам нужно указать свои значения.

Ответ №1:

Чтобы PHP правильно проанализировал ключи вашего массива, вы можете инкапсулировать их с помощью {} следующим образом:

 $insertQuery = "INSERT INTO timeline (id_str, from_user, text, timestamp, location) VALUES ({$resultsAry[$x]['id_str']}, {$resultsAry[$x]['from_user']}, {$resultsAry[$x]['text']}, $datetime, {$locationAry[$i]['place']})";
  

Ответ №2:

Сделайте себе одолжение и, по крайней мере, экранируйте значения для защиты данных. Объединить значения в запросе:

 $insertQuery = "
INSERT INTO timeline (
   id_str, 
   from_user,
   text,
   timestamp, 
   location
) 
VALUES (
   '" . mysql_real_escape_string( $resultsAry[$x]['id_str'] ) . "',
   '" . mysql_real_escape_string( $resultsAry[$x]['from_user'] . "',
   '" . mysql_real_escape_string( $resultsAry[$x]['text'] . "',
   '" . mysql_real_escape_string( $dateTime ) . "',
   '" . mysql_real_escape_string( $locationAry[$i]['place']) . "'
);";

echo $insertQuery;
  

Ответ №3:

попробуйте это:

 $insertQuery = "INSERT INTO timeline (id_str, from_user, text, timestamp, location) VALUES ('".$resultsAry[$x]['id_str']."', '".$resultsAry[$x]['from_user']."', '".$resultsAry[$x]['text']."', '".$datetime."', '".$locationAry[$i]['place']."')";