Inser复选框使用php输入到postgresql中

时间:2016-03-25 01:35:29

标签: php postgresql checkbox

我正试图在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>

1 个答案:

答案 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 . ')'