🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

Q&A

解決済

4回答

647閲覧

シングルクォート「'」の使い方について

lnavi.bex810vh

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

XAMPP

XAMPP(ザンプ)は、ウェブアプリケーションの実行に必要なフリーソフトウェアをパッケージングしたApacheディストリビューションです。 XAMPPひとつインストールするだけで、Apache、MySQL、PHP、Perlなどのソフトウェアと、 phpMyAdminなどの管理ツール、SQLiteなどのソフトウェアやライブラリモジュールなどを利用することが可能です。

0グッド

1クリップ

投稿2020/12/21 10:31

編集2020/12/21 12:04

解決方法

print '<img src="'.$url.$img2.'">'.'</td><td><input type="checkbox" name="del_img" value="00">';
としました。これでシングルクォートの数が合いました。

実現したいこと

下記の後半<img>タグに関するシングルクオート「'」の使い方について悩んでおります。数は全部で偶数になるはずなのですが下記のようにエラーになります。場所はソース後半に「<<<=ココ」としています。

Parse error: syntax error, unexpected '">'.'</td><td><input type="' (T_CONSTANT_ENCAPSED_STRING) in C:\xampp\htdocs\idol\update_profile.php on line 171

試したこと

ドットを変数とリテラルの間に追加しましたが、上記のエラーとなります。

~略~ $sql2='SELECT * FROM mst_img WHERE mem_id=? AND img_flg=?'; $stmh2=$dbh->prepare($sql2); $stmh2 -> bindValue(1, $id, PDO::PARAM_INT); $stmh2 -> bindValue(2, '11', PDO::PARAM_INT); $stmh2->execute(); $rec2=$stmh2->fetch(PDO::FETCH_ASSOC); $img2=$rec2['image']; $url='http://localhost/idol/mem_img/thum/'; print '<img src="'.$url.'s00_'.$img2.'">'.'</td><td><input type="checkbox" name="del_img" value="00">'; print '</td></tr>'; print '<tr><td>'; $sql3='SELECT * FROM mst_img WHERE mem_id=? AND img_flg=?'; $stmh3=$dbh->prepare($sql3); $stmh3 -> bindValue(1, $id, PDO::PARAM_INT); $stmh3 -> bindValue(2, '12', PDO::PARAM_INT); $stmh3 ->execute(); $rec3=$stmh3->fetch(PDO::FETCH_ASSOC); $img3=$rec3['image']; print '<img src="'.$url.'.$img3.'">'.'</td><td><input type="checkbox" name="del_img" value="01">';<<<=ココ print '</td></tr>'; print '<tr><td>'; ~略~

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

最初から1文字ずつ見ていくと分かると思いますが、変数とリテラルが連続しています。

PHP

1.$img2'">'. 23.$img2.'">'.

投稿2020/12/21 10:39

編集2020/12/21 10:40
otn

総合スコア85890

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

複数行を出力する前提ならヒアドキュメントをつかって
変数を展開するほうがわかりやすいし効率的だと思います

投稿2020/12/21 10:41

yambejp

総合スコア116690

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

シンタックスハイライトされたコードを見て、「あれ?」って違和感を感じてください。
デバッグするにあたって、結構重要です。

余談

php

1bindValue(2, '12', PDO::PARAM_INT);

とありますが、PDO::PARAM_INT の意味を理解してますか?

php

1bindValue(2, 12, PDO::PARAM_INT);

とすべきです。

実は、php の PDO::PARAM_INT はめっちゃサボリ魔なので、結果としては変わらないのですが、いつ仕様が正されても正常に動くコードにしておくことを推奨します。

参考)あの PDO::PARAM_INT の挙動が変わった! - qiita

投稿2020/12/21 11:46

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lnavi.bex810vh

2020/12/21 12:00

''でくくると文字列の扱いになるのですね。。。数値を指定しているのに文字列ではつじつまが合わないですね。理解不足でした。勉強になりました。
guest

0

ベストアンサー

意図した表示になるかは別として、以下のようにすればエラーはなくなると思います。

PHP

1 print '<img src="'.$url.''.$img3.'">'.'</td><td><input type="checkbox" name="del_img" value="01">'; 2 ↑ここ

投稿2020/12/21 11:52

javahack

総合スコア1088

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lnavi.bex810vh

2020/12/21 12:06

ご回答ありがとうございます。ていじされたようにしたわけではありませんが、シングルクォートのかけ方を考えて解決いたしました。ヒントをいただきありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問