質問: "'.$club.'"'); $sql->execute(); 上記のクエリを実行したのですがうまくカウントが取れません。(0が返る) なぜでしょうか?? $clubの中には"大阪"という文字列が入っています。 開発言語はphpです。 clubnameには都道府県の名前が入っており 予定ではcountされた値0以上が取得される筈です。
回答: シングルでもダブルでも良いとの指摘でしたので、もう一度考えられる問題点を述べます。 php内部のエンコーディングと、MySQL側のエンコーディングは合っているでしょうか。 `phpinfo()`などでmbstring周りの設定がデータベース側と合っているか、 合っていなければpdo接続時の接続文字列にcharset句を追加するのはいかがでしょうか。 (サーバーにアップロードするphpファイルが勝手に別のエンコーディングに変換されていたりもしないですよね?) 参考:MySQLとPDOの組み合わせでcharsetを指定する - Qiita ``` $sql = $pdo->prepare("select count(*) from test_table where clubname = '$club'"); $sql->execute(); ``` ``` $sql = <<prepare($sql); $query->execute(); ``` 文字列はシングルクォーテーションで囲むんじゃないかな、SQL文の文法として。 シングルとかダブルとかいちいちエスケープ処理するのが面倒なので、 文字列のヒアドキュメントを駆使して書くことが多いです。 参考:ヒアドキュメント