Я пытаюсь ввести значение флажка в мою базу данных в postgresql. Я создал учетную запись таблицы с colum с именем: getrequest, который является типом boolean.
Я использую код ниже, но я получаю следующую ошибку:
Ошибка с запросом: ERROR: недопустимый синтаксис ввода для типа boolean: "" LINE 1:... account (getrequest) VALUES ('',... ^
Любая помощь будет высоко оценен.
благодаря
<?php
$getrequest = "";
$db = pg_connect('host=localhost dbname=test user=myuser password=mypass');
$getrequest = pg_escape_string($_POST['getrequest']);
$query = "INSERT INTO account(getrequest) VALUES('" . $getrequest . "')";
$result = pg_query($db, $query);
if (!$result) {
$errormessage = pg_last_error();
echo "Error with query: " . $errormessage;
exit();
}
$getrequest = "";
pg_close();
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<input type="checkbox" name="getrequest" value="getrequest" class="regular-checkbox">I get a request<br>
<br>
<input type="submit" name="submit" value="SAVE">
</form>
Убедитесь, что значение, которое вы пытаетесь вставить, является допустимым логическим значением (http://www.postgresql.org/docs/9.1/static/datatype-boolean.html) перед его вставкой и при необходимости конвертирует. Matbe filter_var ($ getrequest, FILTER_VALIDATE_BOOLEAN)? 'True': 'false'; Кроме того, вы не указываете логические или числовые типы, Reomove цитаты из вашего оператора insert:
INSERT INTO account(getrequest) VALUES(' . $getrequest . ')'