【超初歩】ダブルクォーテーションの書き方が間違っている場合のエラーについて

このQ&Aのポイント
  • 質問者は、$_POST["Var"]とかダブルクォーテーションの書き方が間違っている場合について質問しています。
  • 質問者が示したコードの書き方は、Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRINGというエラーを引き起こします。
  • 正しい書き方は、$Name = $_POST["MyName"]; $sql = "UPDATE Enquete SET MyName = "$Name"";です。
回答を見る
  • ベストアンサー

【超初歩】$_POST["Var"]とかダブルクォーテーションの書き方が間違ってますか?

$sql = "UPDATE Enquete SET MyName = \"$_POST['MyName']\""; という書き方が, Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\temp\temp.php on line 10 みたいな扱いを受けてしまうのはなぜでしょうか. $Name = $_POST["MyName"]; $sql = "UPDATE Enquete SET MyName = \"$Name\""; とすればエラーにならないですが.

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

$sql = "UPDATE Enquete SET MyName = \"" . $_POST['MyName'] . "\""; とすれば、エラーにならないと思います。 文字列中の一部を変数を使って文字列を生成する場合には、 明示的に変数部分を「.」で区別して書くようにしたほうがいいと思います。 単純な変数の場合は、通ることもあるみたいですが、 ちょっと複雑になるとエラーになってしまいます。

litton101
質問者

お礼

donne-moiさん,早速ありがとうございました. まったくご指摘のとおりに直してOKでした. きれいなコードにするためにも,ご指摘の点, 今後も注意したいです. ありがとうございました.

関連するQ&A

  • ブログが見れません。

    暇つぶし感覚でブログを覗いていたのですが、 エラーのようなものがでてしまいました。 Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /virtual/talentblog/public_html/tllink/tllink.php on line 106 なぜですかね? ご指導下さい。

  • PHPですが、エラーがでます。下記の問題があるよう

    なんですが、どこがいけないのでしょうか? $sql = "insert into menber(name,passward) values($_POST["name"]."','".$_POST["passward"].)";//SQL文の作成 ?> エラーはParse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in です。よろしくお願いいたします。

  • PHPでのQUERY_STRINGの使い方

    PHPを勉強中です。 URLの?以降の文字列を取得し、それが正規表現で 数字と()、/*+-の数式に一致するかどうかを割り出したいです。 echo preg_match("/[^0-9\(\)\+\*\/-]/", "$_SERVER['QUERY_STRING']"); としたところ、 Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) とエラーが出てしまいます。記述の仕方が悪いのでしょうか。 ご教示お願い致します。

    • ベストアンサー
    • PHP
  • $_POST["year"]の”が unexpected といわれる。

    下記はある入門書の説明用サンプルコードの一部です。 これをインプットし(勿論、半角です)、ブラウザで開こうとしたところ、下から3行目で Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\***\htdocs\***\****\xxx.php on line 32 というエラーが出てしまいます。(yearの“”を取ると次の“mon”で、また、同じく ”day” でも出ます。) $name1=$_POST["name1"]; のname1ではエラーが出ていないのに、何故 $year = $_POST["year"];で unexpected '"', のエラーが出るのでしょうか。 この本のサポートサイトに問い合わせましたが、ナシのつぶてで大変困っています。 どなたか、心当たりがおありましたらヒントやご教示頂ければ有難いです。 環境はWinXP H/E、apache_2.0.50-win32-x86、PHP5.0.1、MSIE6.0 です。 <?php ・・・・・・・・ session_start(); ・・・・・・・・ if(!isset($_SESSION["form1"])){ $_SESSION["form1"]="input"; ・・・・・・・ $name1=""; $name2=""; $year=""; $mon=""; $day=""; }else{ $name1=$_POST["name1"]; $name2=$_POST["name2"]; if((0==strlen($name1))&&(0==strlen($name2))){ $error["name"]["message"]="<br><font color=\"#FF0000\"><名前が未入力です></font>"; $errors++; }else{    $error["name"]["message"]="; } $year = $_POST["year"]; $mon=$_POST["mon"]; $day=$_POST["day"];

    • ベストアンサー
    • PHP
  • PHPでエラーがでてしまって困っています。

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Applications/MAMP/htdocs/5-2-1.php on line 30 このエラーを解消できません。 下記は実践マスターPHP+MYSQLという書籍のなかのサンプルなんですが、どこが間違っているかどなたか教えていただけないでしょうか? エラーを検索するとダブルクォーテーションの使い方が原因と書いてあるんですが、最近PHPを勉強したばかりでどうやっても解決できません。 function check_3(&$str){ $str =str_replace($GLOBALS["from"],$GLOBALS["to"],$str);  ←この行でエラー global $msg; $msg = $GLOBALS["from"].'から'.$GLOBALS["to"].'へ置換しました!<br>'; return strlen($str); } 宜しくお願いします。

    • 締切済み
    • PHP
  • このphp文法は間違っていますか?

    php初心者です。 次のPHP文法は間違っているのでしょうか $sql="UPDATE temp_forms SET loan_type='$_POST['loan_type']', sales_price='$_POST['sales_price']' WHERE user_login='$user_name'"; エラーが出てしまいます。'が原因だと思いますが、どこに置けばいい動作するのかわかりません。前はいつもまず$_POSTの値を変数に入れて使っていたのですが、コードが重くなるので直接$_POSTを使いたいのです。使っている$_POSTは、$_POST['value1] = my_sql_real_escape_string($_POST['value1]);のように、あらかじめmy_sql_real_escape_stringでエスケープ処理を行いました。それで充分安全でしょうか ご回答を宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPのプログラム結果が正しく表示されません

    すいません。現在PHPの勉強をしているのですが、下記のサイトにある通りにプログラムを 作っても Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\test.php on line 6 とエラーが出ます。どうしてでしょうか?他のプログラムは正しく表示されるのですが・・。 http://php.xenophy.com/variable-array/index.html 「配列に値を代入する」から下の全てのプログラムが全てエラーと出ます。 例 <?php $animal[] = "牛"; $animal[] = "馬"; $animal[] = "鹿"; echo "$animal[ 0 ]<br />¥n"; echo "$animal[ 1 ]<br />¥n"; echo "$animal[ 2 ]<br />¥n"; ?> 参考にしているwebページ自体が間違っているのでしょうか?詳しい方アドバイスお願いします。

    • 締切済み
    • PHP
  • エラーの意味!

    初めて見るエラーで困ってます!! どなたか教えてください! Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /***/***/***/test.php on line 331

    • ベストアンサー
    • PHP
  • var_dumpの使い方について

    よくわからない点がございますので、お知恵をお貸し頂ければ幸いでございます。 よくあるvar_dumpの使い方の例には、 <?php $a = array(1, 2, array("a", "b", "c")); var_dump($a); ?> や、session_start(); var_dump($_SESSION); if (isset($_SESSION['expire'])){ など色々ありますが、 下記スクリプトで「$_POST」「$_COOKIE」「$sql」「$record」を調べるには、var_dumpをどこに配置すれば、画面上にスクリプトが反映されるのでしょうか。 皆様お忙しいところ恐れ入りますが、ご助力頂ければ幸いです。 ■スクリプト <?php require_once('dbwin') session_start(); if (isset($_COOKIE['mail1']) !== TRUE) { $_COOKIE['mail1'] = NULL; } if ($_COOKIE['mail1'] != ''){ $_POST['mail1'] = $_COOKIE['mail1']; $_POST['password'] = $_COOKIE['password']; $_POST['save'] = 'on'; } if (!empty($_POST)) { // ログインの処理 if ($_POST['mail1'] != '' && $_POST['password'] != '') { $sql = sprintf('SELECT * FROM ○○ WHERE mail1="%s" AND password="%s"', mysql_real_escape_string($_POST['mail1']), sha1(mysql_real_escape_string($_POST['password'])) ); $record = mysql_query($sql) or die(mysql_error()); if ($table = mysql_fetch_assoc($record)) { // ログイン成功 $_SESSION['id'] = $table['id']; $_SESSION['time'] = time();                                       ........省略 以上なのですが、上記スクリプトの 「$_POST」「$_COOKIE」「$sql」「$record」を、var_dumpを使って調べたいのですが、 その手法を具体的にご教授願えますでしょうか。 例えば、「$record」であれば、 $record = mysql_query($sql) or die(mysql_error()); $var_dump($record); とすべき。  ⇒という形でお知恵をお貸し頂ければ幸いでございます。 (この場合実際には、画面にvar_dumpで得られた値は表示されませんでした。) みなさまお忙しいとは存じますが、何卒よろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • phpとsqlに関してです

    $query = "SELECT * FROM `test` LEFT JOIN `test1` ON card_id = `test1`.id $condition . " " . GROUP BY name "; $condition = "` WHERE (in_time >= '{$vars['start_time']}' AND in_time <= '{$vars['end_time']}') AND area_code='{$vars['area_code']}' "; Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in とエラーが出ます sqlの$condition . " " .にはその次の文で書いてある $condition=が入るようにしてますどこが違うのでしょうか?

    • 締切済み
    • PHP

専門家に質問してみよう