{$contents}
について、SQL文のなかで{}はどういった意味なのでしょうか?
http://miruneko.at.webry.info/200802/article_19.html
変数の内容を展開するという意味です
たとえば
$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}'". ");";
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'"
そのサンプルコードの作者が何故その変数だけを {} で囲っているのかは不明です、少なくともこのケースではどちらでも問題ないはずです。
コメント(0件)