PHPでSQL文を発行する際に変数を使いたいことがあると思うので、そのやり方を紹介します。
SQL文で変数を使いたいときの書き方
こんな感じで書けばokです。
SQL文をダブルクオートで囲み、変数はシングルクオートで囲んでドット演算子で連結します。
$stmt = $dbh->query("SELECT email FROM user WHERE name ='" . $name . "'");
これっぽい書き方を色々試したのですが、上の書き方以外はエラーになりました。なぜかはよくわかりません。
// 以下はどれもダメだった
$stmt = $dbh->query("SELECT email FROM user WHERE name = $name");
$stmt = $dbh->query('SELECT email FROM user WHERE name = $name');
$stmt = $dbh->query("SELECT email FROM user WHERE name =" . $name);
こういった書き方だと値を文字列$name
のまま認識してしまったり、カラム名自体を$name
の中身(例えばtanaka
というカラム名)と認識してしまったりとうまくいきませんでした。
ともあれ、PHPのSQL文で変数を使う方法は上で紹介したのが一番いい気がします。