Я пытаюсь отправить данные из простой формы в базу данных PostgreSQL, но мой журнал сервер показывает ошибку Query failed: ERROR: invalid input syntax for integer
частей кода в вопросе являются:неверный входной синтаксис для целого числа при представлении формы
Форма:
<form action="insert.php" method="post">
[removed]
Total Pages: <input type="number" name="totalPages" id="totalpages"><br><br>
<input type="submit"> </form>
Line в insert.php указывается в сообщении об ошибке:
pg_query("INSERT INTO books(coverurl, title, author, genre, totalpg)
VALUES('".$_POST['coverURL']."','".$_POST['title']."','".$_POST['author']."','".$_POST['genre']."','".$_POST['totalpages']."')");
Оглядевшись онлайн Я нашел решение, упоминающее неправильное использование '
в nd "
, но это вызвало другие синтаксические ошибки.
EDIT: Не говоря уже о том, что totalpg
в моей базе данных является SMALLINT
РЕШЕНИЕ: Спасибо JoDev за это, изменил '".$_POST['totalpages']."'
к ".intval($_POST['totalPages'])."
и теперь он работает отлично.
Если бы рассмотреть вопрос об использовании [PDO] (http://php.net/pdo) вместо того, чтобы, не только бы вы избавились от этой и многих других подобных проблем, но у вас не будет огромной проблемы безопасности, которая у вас есть с вашим приложением прямо сейчас. – rid
Или с помощью [pg_escape_string] (http://php.net/manual/en/function.pg-escape-string.php) –
Получаете ли вы ошибку для любого введенного значения? –