みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プログラミングPHP内でのSQL文に関するご質問

プログラミングのPHPの学習中です。
掲示板に関するプログラミングで下記の様なソースコードが記述されていました。
(usersテーブルのusernameとpasswordとセッション変数のusernameとpasswordが等しいという条件の下、情報を抽出するというSQL文です。)
$sql = "select * from users where username = '".$_SESSION["username"]."' and password='".$_SESSION["password"]."'";

上記ソースコードでご質問です。
'".$_SESSION["username"]."'と、'".$_SESSION["password"]."'の箇所で、セッション変数をダブルクォーテーションで囲んでいるのは、変数展開するためと理解しました。また、更にシングルクォーテーションで囲むのは、変数展開したものを文字列として扱う為と理解しました。しかし、セッション変数の両隣にあるピリオドの意味がよく分かりません。文字列と変数を結合する為だと思うのですが、府に落ちません。

どなたかお教え頂ければ幸いです。
何卒宜しくお願い致します。

投稿日時 - 2011-07-12 12:53:58

QNo.6870762

暇なときに回答ください

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

セッション変数がダブルクォーテーションで囲われているのではなく
「select * from users where username = '」
「' and password='」
「'」
のそれぞれがダブルクォーテーションに囲まれて文字列として扱われているのです。

投稿日時 - 2011-07-12 13:33:35

お礼

回答誠に有難うございます。
「select * from users where username = '」
「' and password='」
「'」のそれぞれが文字列として扱われ、更にセッション変数の箇所が両隣のピリオドで文字列と連結しているということで理解できました。

投稿日時 - 2011-07-14 01:09:22

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

既にご存じじゃぁ、ないですか。
php に限りませんが、ピリオドの意味は、次のようになります。

・文字列演算子として、ピリオドの左右の文字列をつなげる。

仮に

username= pascal
password=newton

とした場合

select * from users where username = 'pascal' and password='newton'

という文字列になるはずです

投稿日時 - 2011-07-12 13:25:22

お礼

回答有難うございます。
変数の箇所に具体的に値を代入した例で分かり易かったです。

投稿日時 - 2011-07-14 01:11:33

あなたにオススメの質問