2017-02-01 23 views
0

空のテキストをINTデータ型で保存するにはどうすればよいですか?空のフィールドをINTデータ型に格納する方法は?

$contact_number = $_POST['contact_num']; 

$contact_number1 = !empty($contact_number) ? "'$contact_number'" : "NULL"; 

INSERT INTO 
pre_enrollment(pre_en_contact_num) 
VALUES('$contact_number1');"; 
+1

INTにテキストを保存することはできません。 – labue

+1

NULLが唯一のオプションです。「contact_num」が電話番号の場合は、intを使用しないでください。 – nogad

+0

@nogad何を使用すればよいですか? –

答えて

1

うんあなたは、引用符を削除することができます:それは私にここに0

の値を与える私はフォームを送信するたびに私のコードです。引用符はそれを文字列にします。

$contact_number1 = !empty($contact_number) ? $_POST['contact_num'] : NULL; 
+0

私はそれを削除しても0の値を返します。 –

+0

SQLでも引用符で囲む必要があります。クエリをパラメータ化します。 – chris85

+0

けれども引用符はそれを文字列にします。 –

1

$contact_number1に既に引用符がありますので、クエリには不要です。これは、数字の周りに余分な引用符を入れています。これは構文エラーで、引用符を入れてヌルリテラルではなく文字列にします。NULL

ただし、文字列置換の代わりに準備クエリを使用した方が最適です。

$contact_number = empty($_POST['contact_num']) ? null : $_POST['contact_num']; 
$stmt = mysqli_prepare($conn, "INSERT INTO pre_enrollment (pre_en_contact_num) VALUES (?)"); 
mysqli_stmt_bind_param($stmt, "s", $contact_number); 
mysqli_stmt_execute($stmt); 

プリペアドステートメントは、自動的にMySQLのNULLにPHP nullを翻訳します。