- ベストアンサー
Int型のフィールドへのNULLを入れる方法
- テーブルt_sampleのINT型のフィールド(win_rate)にNULLを入れる方法を知りたいです。
- PHPMyAdminでNULLを許可にしたフィールドに直接データを挿入する際、値を入力しないと0が入ってしまいます。
- 0とNULLを区別して扱いたいので、どうすればいいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>$win_rate = null; を $win_rate = 'null'; としてください
その他の回答 (1)
- hogehoge78
- ベストアンサー率80% (433/539)
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) と、シングルクオーテーションで囲まないようにする必要があります。
お礼
ありがとうございます。 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が入っていません。 どうしたらいいんでしょうか?
お礼
$win_rate = 'null'; $sql="insert into t_sample ( namae , win_rate ) values ( '名前' , {$win_rate})"; mysql_query($sql); とすることで無事解決しました。 NULL、空文字列の扱いについてまだまだ勉強が足りていなかったようです。 しっかり勉強したいと思います。 ありがとうございました。