【PHP】SQL文で変数を使いたいときの書き方

【PHP】SQL文で変数を使いたいときの書き方 PHP

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文で変数を使う方法は上で紹介したのが一番いい気がします。