4

我有一个简单的网络调查,用户可以使用单选按钮选择他们的答案。我检查了使用 javascript 勾选了哪些按钮。我没有将按钮设置为任何默认状态,因此可以不回答问题。

当我将此传递给 php 并尝试将结果插入整数类型的列时,如果所有单选按钮都被勾选,则没有问题。但是,如果有任何未勾选的按钮,我会收到以下错误消息:

Query failed: ERROR:  invalid input syntax for integer: "NaN"

我知道这是因为我的整数列无法处理字符串,但我不知道处理这个问题的最佳策略是什么。我应该在 javascript 端检查还是在 php 中有任何方法我应该测试值不为空?

我使用以下结构将结果插入到我的数据库中:

$query=pg_query_params( $connection, 'INSERT INTO tracking.postsurvey(answer1) values($1)', array($answer1) );
4

1 回答 1

4

解决方案是将查询更改为:

'INSERT INTO tracking.postsurvey(answer1) values(nullif($1, 'NaN'))'

http://www.postgresql.org/docs/current/interactive/functions-conditional.html#FUNCTIONS-NULLIF

于 2012-04-04T17:09:50.363 回答