我正试图在postgresql中的数据库中引入复选框的值。我用一个名为:getrequest的列创建了表帐户,它是布尔类型。
我正在使用下面的代码,但我得到了以下错误:
查询错误:错误:类型boolean的输入语法无效:"LINE 1:。。。帐户(getrequest)值('',…^
如有任何帮助,我们将不胜感激。
感谢
<?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),然后插入,并根据需要进行转换。匹配filter_var($getrequest,filter_VALIDATE_BOOLEAN)?'true':'false';此外,您不引用布尔型或数字型,请重新组合插入语句中的引号:
INSERT INTO account(getrequest) VALUES(' . $getrequest . ')'