• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Int型のフィールドへのNULLを入れる)

Int型のフィールドへのNULLを入れる方法

このQ&Aのポイント
  • テーブルt_sampleのINT型のフィールド(win_rate)にNULLを入れる方法を知りたいです。
  • PHPMyAdminでNULLを許可にしたフィールドに直接データを挿入する際、値を入力しないと0が入ってしまいます。
  • 0とNULLを区別して扱いたいので、どうすればいいでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>$win_rate = null;  を $win_rate = 'null'; としてください 

changuri
質問者

お礼

$win_rate = 'null'; $sql="insert into t_sample ( namae , win_rate ) values ( '名前' , {$win_rate})"; mysql_query($sql); とすることで無事解決しました。 NULL、空文字列の扱いについてまだまだ勉強が足りていなかったようです。 しっかり勉強したいと思います。 ありがとうございました。

その他の回答 (1)

回答No.1

SQL文が間違っています。 insert into t_sample ( namae , win_rate ) values ( '名前' , '".$win_rate."') このようにした時に、これの変数を展開すると、 insert into t_sample ( namae , win_rate ) values ( '名前' , 'null') になりますが、これはPHPと同じで、シングルクオーテーションで囲んだものは、「文字列」と扱われますので、NULLを挿入するときは、 insert into t_sample ( namae , win_rate ) values ( '名前' , null) と、シングルクオーテーションで囲まないようにする必要があります。

changuri
質問者

お礼

ありがとうございます。 insert 文の内部に変数$win_rate の状態で組み込みたいのですが、どのようにしたらいいでしょうか? $sql="insert into t_sample ( namae , win_rate ) values ( '名前' , $win_rate)"; mysql_query($sql); $sql="insert into t_sample ( namae , win_rate ) values ( '名前' , {$win_rate})"; mysql_query($sql); このどちらもテーブルにデータが入りません。 エラーメッセージは出ませんし、sql実行前に echo $sql と内容を確認すると、 insert into t_sample ( namae , win_rate ) values ( '名前' , ) となり、NULLが入っていません。 どうしたらいいんでしょうか?