柔軟に働き方を選ぶ時代に必要なこと >>

タイトルの通り、長さ1の空文字列で困っています。


現在、Linux、Apache、MySQL、PHPを使って3階層アプリケーションを作っています。
予めMySQLでテーブルの形を決めておいて、CSVからデータを読み込ませておき、
PHPでSQL文を実行してレコードを取得することで、それらをユーザに表示という感じです。

複数あるカラムのうち、空文字列(CSV上でブランクだったもの)は表示させたくないので、
PHPで「 if(カラム=="")~ 」のように比較することで、空文字列だけ避けるつもりでした。
しかし上手くいかなかったので、strlen()で調べて見たところ、返り値が1でした。
本来は空文字列に対してstrlen()は0或いはfalseの返り値を返しますよね。
is_empty()でも空データ扱いにならず、当然NULLの扱いでもありません。
そのため、実データとの区別が出来ずに困っています。

何故、空文字列のカラムを除外したいかというと、
DB上のユニークなレコードを検索したいからです。
select * from where カラム='データ' and カラム='データ'… という風に。
「カラム=''」としてしまうと検索に引っかからなくなってしまいます。


どうすればよいでしょうか。
以下はそれぞれのバージョンです。

MySQL:5.0.95
PHP:5.1.6
Linux:RHEL5
Apache:2.2.3

このQ&Aに関連する最新のQ&A

A 回答 (1件)

改行文字が入ってませんか?


trim()を使って不要なスペースや改行文字を消してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございます、CSV上で一番端のカラムであったため改行文字が入っていたようです。
助かりました!

お礼日時:2012/05/25 15:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング