4

ユーザーがラジオボタンを使用して回答を選択できる簡単な Web 調査があります。JavaScriptを使用して、どのボタンがチェックされているかを確認します。ボタンをデフォルトの状態に設定していないため、質問に答えない可能性があります。

これをphpに渡し、結果を整数型の列に挿入しようとすると、すべてのラジオボタンがチェックされていれば問題ありません。ただし、チェックされていないボタンがある場合、次のエラー メッセージが表示されます。

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

これは、整数列が文字列を処理できないことが原因であることは理解していますが、これを処理するための最良の戦略が何であるかはわかりません。javascript 側でチェックする必要がありますか、または値が null でないことをテストする必要がある 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 に答える