2011-01-06 8 views
0

データベースにいくつかの変数を挿入するMySQL文があります。変数が空の場合、それはなりますMySQLとPHP - 変数が空白の場合でも挿入しますか?

$query = "INSERT INTO data (notes, id, filesUploaded, lat, lng, intLat, intLng) 
      VALUES ('$notes', '$id', TRIM('$imageUploaded'), '$lat', '$long', 
        '$intLat', '$intLng')"; 
mysql_query($query); 
+0

これらのフィールドは整数ですか?そうであれば、引用符で囲む必要はありません。 intval()または(int)を使ってそれらを整数にキャストし、それらがnullの場合は0になります。 – JAL

答えて

2

ただ、1つのインサートを使用し、そして:私は最近($ intLat、$ intLng)オプションである2つのフィールドを追加しましたが、入力された場合、私は、INSERT文に含めるしたいと思いますデータベースに投稿する

+1

これらのフィールドがDEFAULT NULLとして定義されている限り、これは問題ありません。すべてが文字列であるように見える上記の文の場合、どちらの方法でも動作します。 – JAL

0

Michael Stevensと同意しない;値がオプションの場合は、データベース内でNULLにする必要があります。ただし、引用符で囲むことで空の文字列として挿入されます。それはデータ正気性の観点からは悪いことです。

だからどうすればいいですか?入力として連想配列を取り、クエリを生成する関数を書いておく(または見つける...)のを少し時間を費やしてください。主な要素:array_keys、implode、mysql_real_escape_string PHPマニュアルは次のように散りばめられています:

関連する問題