質問: "大阪府"」のように正しく取得したいのですが、どうすればいいでしょうか。
回答: まず大前提として**PHPなどのプログラムから実行させる前に直接DBに対して実行して想定の結果が得られるSQLを作ってください**。 もし、それが`SELECT id FROM plan WHERE departure = "大阪府"`なのであれば、あとはPHPの文字列の作り方の問題です。 引用符(シングルクォーテーション)と二重引用符(ダブルクォーテーション)の扱いの問題です。 SQLの問題ではありません。 代表的なルール * シングルクォーテーション内では変数は展開されない * ダブルクォーテーション内では変数が展開されるが前後の文字列での注意が必要 * シングルクォーテーションの中にダブルクォーテーションはそのまま書けてそのまま表示できる * ダブルクォーテーションの中にシングルクォーテーションはそのまま書けてそのまま表示できる * シングルクォーテーション内でシングルクォーテーションを書いて表示させたい場合はエスケープを行う * ダブルクォーテーション内でダブルクォーテーションを書いて表示させたい場合はエスケープを行う ざっとこんな感じです。 (細かいニュアンスとかルールはともかく) PHPマニュアル:文字列にも書いてあります。 まずはそこをおさえた上で対応しないと今後もっと基本的なところでつまずくことになります。 できれば、そこをきちんとおさえた上で、m6uさんの回答にあるSQLインジェクション対策含めたコーディングを行ってもらいたいです。 補足: MySQLにおいて、文字列を囲うときはシングルクォーテーション、ダブルクォーテーションどちらでも良い仕様なのですが、多くのDBではシングルクォーテーションしか使えないのが仕様です。 プログラミングにおいてずっと続けていたらMySQLだけを使うことというのは中々ないので(むしろMySQLを取り扱っていることが少ない)、シングルクォーテーションで統一しておきましょう。