質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

PHP

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

Q&A

解決済

1回答

1764閲覧

PHPとSQLiteで作るSQLテストプログラムのコードにエラーが出てしまう。

shunoikawa2016

総合スコア7

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

PHP

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

0グッド

0クリップ

投稿2016/10/04 08:00

編集2016/10/04 08:03

PHPとSQLiteで、SQLをテストするためのプログラムを書いています。

PHPでテキストエリアをつくり、そこにSQL文を入力⇒実行して表示
までをブラウザ上で行うプログラムです。

クジラ飛行机著のPHPレッスンブックを見ながら書いています。

教科書通りに写していったのですが、構文エラーが出てしまい次に進めません。
3時間ほど睨めっこしましたが見つからず。。

PHP

1<html> 2<head> 3 <meta charset="utf-8"> 4 <title>SQL テスト</title> 5</head> 6<body> 7 <?php 8// SQLの入力フォームの表示 9 $query = isset($_GET["query"]) ? $_GET["query"] : ""; 10 $q_html = htmlspecialchars($query); 11 echo <<< _FORM_ 12 <form> 13 <div> SQLを以下に記述:</div> 14 <textarea name="query" rows="5" cols="70">{$q_html}</textarea> 15 <div> 16 <input type="submit" value="SQL実行" /> 17 </div> 18 </form> 19 _FORM_; 20 //SQLを実行する 21 if ($q_html !=""){ 22 $db = new PDO("sqlite:./test.db"); 23 $db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 24 try{ 25 //実行して結果を表示する。 26 $html = $head = ""; 27 foreach($db->query($query, PDO::FETCH_ASSOC) as $row) { 28 if ($head=="") {//ヘッダ行 29 $keys = array_keys($row); 30 $head.="<tr>"; 31 foreach($keys as $c){ 32 $c_html=htmlspecialchars($c); 33 $head.="<th>$c_html</th>"; 34 } 35 $head .="</tr>"; 36 } 37 $html .="<tr>"; 38 foreach ($row as $c) { //実行結果 39 $c_html = htmlspecialchars($c); 40 $html.="<td><pre>$c_html</pre></td>"; 41 } 42 $html.="</tr>\n"; 43 } 44 echo "<p style='font-weight:bold; color:blue;'>実行しました</p>"; 45 echo "<table border='1' bgcolor='#fff' cellpadding='4'>"; 46 echo $head . $html; 47 echo "</table>"; 48 }catch(Exception $e){ 49 $msg = $e->getMessage(); 50 echo "<div style='color:red'>$msg</div>"; 51 } 52 } 53 ?> 54</body> 55</html> 56

{}の位置は教科書と同じです。
スペルミスを数カ所確認したので訂正しました。
DreamWeaverにコピペしてエラー部分を確認して、エラー部分を削除し続けると

echo>>>FORM

<form> ~~~ </form> _FORM_;

を消したところでエラーが消えたのでこのあたりが怪しいと思ったのですが、教科書との違いは見当たらず。。

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

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

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

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

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

guest

回答1

0

ベストアンサー

はい、__FORM__;の行は、先頭にスペースすら入れてはいけません。行頭から書きましょう(この「ヒアドキュメント」構文について)。

投稿2016/10/04 08:03

maisumakun

総合スコア145183

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

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

shunoikawa2016

2016/10/04 08:10

ありがとうございます! 一瞬で解決しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問