Проблема с запросом - PullRequest
       2

Проблема с запросом

0 голосов
/ 10 июня 2011

Я не могу найти ответ, почему этот запрос не работает:

$query = pg_query($connect, sprintf("INSERT INTO table (uid, urzid, time_start, time_stop2, date_start, date_stop, cycle) VALUES ($uid, $pom, '$time1', '$time2', '$data1', '$data2', $cykl)"));

Я получаю предупреждение: PG_QUERY () [FUNCTION.PG-QUERY]: QUERY FAILED: ERROR: SYNTAX ERROR ATИЛИ РЯДОМ "," В ХАРАКТЕРЕ 96

Мне кажется, что ошибка связана с. '' $ Time1, $ Time2 и $ date1, $ date2 соответствуют формату даты и времени.

Ответы [ 4 ]

5 голосов
/ 10 июня 2011

Вы должны предоставить формат функции sprintf

См. документ

И, более того, в этом случае sprintf вообще не нужен.

2 голосов
/ 10 июня 2011

Мы не можем угадать, что в ваших переменных. Пожалуйста, запустите этот код и вставьте результат:

echo "INSERT INTO table (uid, urzid, time_start, time_stop2, date_start, date_stop, cycle) VALUES ($uid, $pom, '$time1', '$time2', '$data1', '$data2', $cykl)";

Вы найдете синтаксическую ошибку.

Лучший способ избежать ошибок такого рода (и, что еще более важно, предотвратить SQL-инъекцию ), это использовать такую ​​библиотеку, как PDO и использовать заполнители для переменных.

Обновление : теперь, когда мы можем видеть, как выглядят ваши переменные, попробуйте следующее:

$query = pg_query($connect, "INSERT INTO table (uid, urzid, time_start, time_stop2, date_start, date_stop, cycle) VALUES ('$uid', '$pom', '$time1', '$time2', '$data1', '$data2', '$cykl')");

Однако не забудьте взглянуть на приведенный выше комментарий, чтобы узнать лучшие практики.

0 голосов
/ 10 июня 2011

Вы должны добавить дополнительные параметры:

$world = "World";
$foo = sprintf("Hello %s", $world);

Однако, поскольку вы в строке в двойных кавычках, вам не нужен sprintf:

$foo = "Hello $world";
0 голосов
/ 10 июня 2011

Попробуйте поменять местами кавычки, "=> '," =>' ... всегда спасает меня от боли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...