1

POSTデータをphpファイルに送信するhtmlフォームがあります。PHP では、mysql データベースへのクエリを作成しています。データベースには、null を受け入れる int 列があります。

問題は、Web フォーム フィールドが空の場合です。null をデータベースに保存したいです。クエリを作成する前にチェックを試みました

if (empty($licence))
        $sql_query.="null,r1=";
    else $sql_query.="'".$_POST["licence"]."',r1=";

それは働いています。しかし、ユーザーがフォーム フィールドに 0 を書き込むと、データベースに null が保存されます。これは間違っています。ユーザーが 0 を入力した場合は 0 を保存したいが、フィールドが空の場合は null を保存したい。これを修正する方法?? 問題は、フィールドが空の場合、投稿データとして 0 が送信されることです...

4

4 に答える 4

0

データベーステーブルのライセンスフィールドのデフォルト値が0である可能性があると思います。したがって、フィールドが空の場合、レコードをデータベースに保存するときに0がかかります。

デフォルト値をNULLにします。問題が解決します。

于 2012-09-20T13:17:14.600 に答える
0

empty()関数(PHPマニュアル)

var が存在し、空でもゼロでもない値を持つ場合、FALSE を返します。それ以外の場合は TRUE を返します。

次のものは空と見なされます。

"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)

あなたの場合、次を使用します。

if (!strlen($licence))
    $sql_query.="null,r1=";
else $sql_query.="'".$_POST["licence"]."',r1=";

代わりは

于 2012-09-20T09:54:51.357 に答える
0

試す

$sql_query.=($_POST["licence"]?"'".$_POST["licence"]."'":NULL).",r1=";
于 2012-09-20T09:46:49.457 に答える
-1

empty(0) をチェックすると false になります (マニュアルに記載されています)

if (isset($licence) && empty($licence)) {
    // it is empty or 0
} elseif(isset($licence)) {
    // it is something 
}
于 2012-09-20T09:54:09.353 に答える