我正试图在postgresql中将复选框的值引入我的数据库。我创建了一个表帐户,其中包含一个名为:getrequest的列,它是boolean类型。
我正在使用下面的代码,但是我收到以下错误:
查询出错:错误: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>
答案 0 :(得分:0)
在插入之前验证您尝试插入的值是否为有效的布尔值(http://www.postgresql.org/docs/9.1/static/datatype-boolean.html),并在需要时进行转换。 Matbe filter_var($ getrequest,FILTER_VALIDATE_BOOLEAN)?'true':'false'; 此外,您不引用布尔或数字类型,从插入语句中重新引用引号:
INSERT INTO account(getrequest) VALUES(' . $getrequest . ')'