PHPで画像データをMySQLに格納したいのですが、下記URLの中のSQL文で画像データにあたる

{$contents}
について、SQL文のなかで{}はどういった意味なのでしょうか?

http://miruneko.at.webry.info/200802/article_19.html

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/08/16 22:05:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答3件)

id:km1981 No.1

回答回数429ベストアンサー獲得回数49

ポイント34pt

変数の内容を展開するという意味です

たとえば

 $type = 'BLOB';

 $strsql = "INSERT INTO TABLENAME (imgtype) values ('{$type}');"

と書いてあったら実行時には

 $strsql = "INSERT INTO TABLENAME (imgtype) values ('BLOB');"

となります


シングルクォーテーションに挟まれた中では

変数は実体に変換されないというルールがあるので

このように書いてあるのだと思います

下のように書いても効果は同じです

$strsql = "INSERT INTO TABLENAME (".
      "size, imgtype, width, height, imgdata ".
      ") values ( ".
      "{$size}, '{$type}', {$width}, {$height}, '{$contents}'".
      ");";
id:y-kawaz No.2

回答回数1422ベストアンサー獲得回数226

ポイント33pt

SQLは関係なくPHPの文法です。

<?php
//例えば以下のような変数があった場合
$a = "hoge";
$b = array("one" => 1, "two" => 2);

// 以下の2つはどちらも同じ結果を返します。
echo "a = $a";   // "a = hoge"
echo "a = {$a}"; // "a = hoge"

// ですが以下のようなケースでは単純に変数を埋めると
// PHPはどこからどこまでが変数なのか分からないので文法エラーになってしまいます。
//echo "one = $b["one"]\n"; // エラー

// こういう場合は {} を使い、この中は文字列じゃなく変数ですよとPHPが理解できるように明示してやるわけです。
echo "one = {$b['one']}"; // "one = 1"

なので、そのサンプルコードの中の

"$size, '{$type}', $width, $height, '{$contents}'"

この部分は、以下と同じ意味で単純に文字列に変数を埋めているだけです。

"$size, '$type', $width, $height, '$contents'"

そのサンプルコードの作者が何故その変数だけを {} で囲っているのかは不明です、少なくともこのケースではどちらでも問題ないはずです。

id:mirakurutoshiki No.3

回答回数157ベストアンサー獲得回数3

ポイント33pt

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1358663303

たぶんこれだったと思います。

まちがってたらすいません。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません