• ベストアンサー

php上でSQL文を実行した結果と、phpMyAdminで実行した結果が違う

☆実行環境 php5.3 MySQL4.0 $sql="SELECT * FROM テーブル名 WHERE フィールド名 like '".$変数."%'" php上で上記のようなSQL文を実行させようとしています。 テーブルには該当する行がいくつかあるのですが、ページ上では1行も表示してくれません。 mysql_num_rowsの返り値を見ると0になっています。 SQL文の組み立てがおかしいのかと思い、phpMyAdmin上でSQL文を実行すると、 きちんと欲しい内容が表示されます。 とするとphpでのSQL文の書き方がおかしいのだと思います。 どこかおかしいのかご教授ください。

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

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

書き方自体はおかしくないように見えます。 普通に、前方一致で抽出されたものが返ってくるはずです。 SQL文を echo してみて、それを コピペして phpMyAdmin に放り込んでみた場合は、結果がどうなるのか知りたいところです。

souitirou1
質問者

お礼

自己解決しました。 phpファイルの文字コードとデータベースの文字コードが違うのが原因でした。 エラーメッセージは出ないので、苦労しましたよ。 こんな初歩的なミスに気づくのに3日かかるとは。。。

souitirou1
質問者

補足

回答ありがとうございます。 >SQL文を echo してみて、それを コピペして~ この場合、取得したい内容が返ってきます。 phpでmysql_queryを使うときだけ、何かが起こっているのでしょうか。

その他の回答 (1)

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

$変数に考えている内容のものが入っていないか、 見ただけでは判らない文字が入っているからではないでしょうか?

souitirou1
質問者

補足

回答ありがとうございます。 sql文をechoした限りでは、意図していない文字やよくわからない文字などは入っていないのですが。。。

関連するQ&A