人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで画像データをMySQLに格納したいのですが、下記URLの中のSQL文で画像データにあたる
{$contents}
について、SQL文のなかで{}はどういった意味なのでしょうか?

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


●質問者: koime_ryokutya
●カテゴリ:コンピュータ インターネット
✍キーワード:MySQL PHP SQL URL データ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● km1981
●34ポイント

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

たとえば

$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}'".
      ");";

2 ● y-kawaz
●33ポイント

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'"

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


3 ● mirakurutoshiki
●33ポイント

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ