HTMLフォームからMySQLへデータを挿入する際に起こるエラー

このQ&Aのポイント
  • HTMLのフォームから送信すると、予期しないダイアログが表示され、ファイルがダウンロードされるエラーが発生しています。
  • PHPとMySQLのバージョンやデータベース接続処理などに問題はなく、1件のデータを挿入するサンプルプログラムでは成功しています。
  • ただし、view.phpのみを実行すると「DB Error: syntax error」と表示されています。
回答を見る
  • ベストアンサー

mysqlへのデータ挿入

HTMLによる送信フォームからデータを挿入するプログラムを作っているのですが、妙なエラーが出ます。 フォームにデータを入れ送信ボタンを押すとview.phpにpostをつかって渡すはずなんですが、なぜか送信ボタンを押すとview.phpをダウンロードしますか?みたいなダイアログが出てきてしまいます。開く、保存、キャンセルが選べるあのダイアログです。 このプログラムのコード自体はテキストの公式サイトからコピーしていますので記述ミスはないはずなんです。 データベースもちゃんユーザー名やパスワードなどは当たっていると思います。 PHPとmysqlのバージョンなども問題ないかと思われます。 PEARを使いデータベース接続処理をしていて、データを1件、挿入しましたと表示されるずなんですが・・・ mysqlへの接続だけのサンプルなら成功しています。 ちなみにview.phpだけを実行すると「DB Errow:syntax error」と表示されています。 かなりめちゃくちゃな質問になってしまっていて申しわけありません。 思い当たる方がいれば回答お願いいたします。

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

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

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

WEBサーバの設定で.PHPを登録していないからです。 だからページだと思わずただのファイルと判断してダウンロードしようとするのです。

loslobos
質問者

お礼

うぉ! できました! ありがとうございます^^

関連するQ&A

  • 【php MySQL】データが取り出せない

    こんにちは。 MySQLのデータをphpで管理するページを作っていますが、壁にぶつかってしまいました。 データベースのあるフィールドに、「あああ」「いいい」「ううう」というようにいろんな言葉が登録されています。 これらを削除・追加するために、phpで取り出して、チェックボックスでリストアップします。 リストにない言葉は新たに登録できるように、テキストフィールドも用意しています。 □あああ □いいい □ううう 新規:[   ](テキストフィールド) というふうにです。 このフォームはちゃんと機能していまして、追加した言葉はデータベースに記録されているのですが、なぜかフォームにリストアップされないのです。 例えば、    □あああ □いいい □ううう 新規:[   ] で、新規のところに「かかか」と入れて送信すると、    □あああ □いいい □ううう □かかか 新規:[   ] となってほしいわけですけど、    □あああ □いいい □ううう □ 新規:[   ] となってしまうのです。 フォームを使って送信した言葉が、データベースに記録されていながら、取り出せないというのは、何が原因だと考えられるでしょうか? 何かすごく単純なことのような気がするので、ソースは載せないでおきます。 ご教示をよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • MySQLへの特殊文字の挿入について

    こんばんは。今MySQLへのデータの挿入時に特殊文字を挿入することが出来ないエラーに悩まされています。初心者で大変申し訳ございませんが、色々と調べてみたのですがどうしても解決できなかった為、質問させて頂きました。お手数をおかけしますがご教授いただければ幸いです。 問題というのは、MySQLへのデータの挿入時の文字列に特殊文字が含まれていた場合、この場合文字列中に「?」が含まれていた場合にこの文字列をinsertすると「?」が「1」に変換されてしまうのです。環境としてはPHPのPEARからの利用で、文字列はDBクラスのquoteメソッドでエスケープしてから挿入しております。文字列の文字コードはEUC-JPです。バックアップ用ファイル(CSV形式のテキストファイル)には正しく記録されておりますのでMySQLの仕様に関しての問題ではないかとは考えておりますが、どうしても解決できず困っております。お手数をおかけしますがよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • HTMLフォームからの挿入ができません。

    HTMLのフォーム (a.html) から入力したデータを、別のページ (b.php) に送信して、送信先のページでデータベースに挿入させる システムを開発しているのですが、どうしても挿入されません。 文字化けして挿入されるわけではなく、レコードの挿入自体が 行われないのです。 b.php のスクリプトで直接INSERT文を実行させると、問題なく 挿入されるのですが… POST形式でデータの送信を行っており、その部分に問題があると 考えられますが、原因がさっぱり分かりません。 ちなみに、運用している環境は Apache 2.0.55 MySQL 5.0.15 PHP 5.0.5 です。 文字コードは、Shift_JISで統一しています。

    • ベストアンサー
    • MySQL
  • PHP+MySQL mysql_connectのエラー

    PHP初心者なのですが、 PHPを使用して外部ホストのMySQLデータベースから データを取り出すプログラムを開発しています。 mysql_connect関数でデータベースに接続する段階で 内部エラーとなってしまいます。 プログラムは以下のようなものです。 $url = "000.000.00.00";//外部ホストのアドレスです $user = "username"; $pass = "password"; $db = "databasename"; $link = mysql_connect($url,$user,$pass) or die("MySQLへの接続に失敗しました。"); ホストアドレスやユーザー名、パスワードは 以前VisualBasic+ODBC+MySQLでデータを読み込んでいたときに 使用していたものなので、間違いはないと思います。 非常に初歩的な質問で申し訳ありませんが、 非常に困っております。 ご助言よろしくお願いします。

    • 締切済み
    • PHP
  • mysqlにうまく接続できません

    PHP、Mysql初心者です。 何かWEBページの作品を作ろうと、データベースを使ってます。 ごくごく定番のPHPからデータベースの内容を書き出すことをしているのですが、 Fatal error: Call to undefined function mysql_connect() in C:\Program Files\Apache Group\Apache2\htdocs\renshu\ken.php on line 10 というエラーコードが出ました。私のテキストエディタでの9~11行目はこちらです。ちなみにApache2とMysql5です。 <?php mysql_connect('localhost','root','パスワード'); mysql_select_db('データベース名'); 参考書通りにやっていまして、タイプミスはないはずなんですが…。ホスト名やユーザ名もあっているはずです。 どなたか教えてください。よろしくお願いいたします。

  • MySQLについて

    会員制サイトを作成中です。最近までフリー配布のCGIを改造してHPを作成していたのですが、やりたい事がなかなか出来ず、今PHPとMySQLを参考書などで勉強している初心者です。どうぞよろしくお願いします。質問1.初歩的なご質問だと思いますが、MySQLデータベース内のデータは誰でも閲覧する事が可能なのでしょうか?それともHPの管理者だけが閲覧できるものなのでしょうか?質問2.(もし誰でも閲覧可能な場合)MySQLには、ログファイルというものはあるのでしょうか?もしある場合、プログラムによって自動生成は可能でしょうか?何をしたいかと申しますと、入力フォームから受け取ったデータのレコードごとに、投票が行えるようにしたいのですが、そのような事は可能でしょうか? 質問3.フィールドに、返信メールフォーム、質問2の投票フォームにリンクさせるボタンを作成する事は可能でしょうか?分かりづらいご質問で申し訳ありません。よろしくお願いします。

  • PHPでmySQLのデータを取り出す

    お世話になります。 php、smarty、mySQLを利用してサイトを構築しています。 下記のPHPプログラムを記述してデータベースからデータを取り出そうとしているのですが、queryの利用方法が良く判りません。 下記の場合、ブラウザ上には、『 Object 』と表示されています。 アドバイスをお願いします。 $sql = 'select footer from common where id=1'; $footer =& $mdb2 -> query($sql); if (PEAR::isError($footer)) {die($footer->getMessage());} $smarty->assign("footer",$footer);

  • PHPとMySQLを使ったフォームを作っていますが、うまくできないこと

    PHPとMySQLを使ったフォームを作っていますが、うまくできないことがあり書き込みさせていただきます。 わかる方、ご助力願えれば幸いです。 フォームから、送信されたデータを受け取って、MySQLに登録する際に、フォーム内に空欄があると、うまくMySQLのデータベースに追加ができなかったり、変更ができなかったりします。 コードを簡単に書くと… <?php //フォームからデータを取得 $name = $_POST['name']; $address = $_POST['address']; $age = $_POST['age']; //データベース接続処理 $db = mysql_connect("localhost","user","password"); mysql_select_db("db_name",$db); $rs = mysql_query("select * from tablename order by my_id desc",$db); //データベースへの登録 $rs = mysql_query("INSERT INTO tablename(name,address,age)VALUES('$name','$address','$age')",$db); ?> このような感じになります。 フォームには、名前、住所、年齢を入力しているわけですが、年齢が必須でないため、空欄として送られてくることもあります。 年齢に数値が入っている場合は、うまく登録されますが、空欄であった場合、特にエラーが出るわけでもなく、単に「登録されない」という状況がおきます。 データベースのテーブルのフィールドでは、ageは int(11)でNULLはYes、defaultはNULLになっております。 自分なりに調べてみたつもりですが、知りたい情報に出合うことができませんでした。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • フォームから送信した値とMySQLの値と比較したい

    PHP初心者です。 フォームから送信した値とMySQLの値を比較したいのですが、行き詰まっています。 以下の、”//(1)↓”のところが動作しません。どなたか助けていただけないでしょうか? MYSQLの値は1レコードのみの抽出し、そのカラム”seikai”と、フォームから送信された”rad”と比較したいのです。 <?php //区画 $kukaku = "1"; // ファイルインクルード include("db.php"); // データベース接続 $conn = mysql_connect($host, $user, $pw) or die("データベース接続エラー"); mysql_select_db($db, $conn) or die("接続エラー"); // データ抽出 $sql = "SELECT * FROM $table where id = '$kukaku'"; $res = mysql_query($sql, $conn) or die("データ抽出エラー"); // データを受け取る $rad = @$_POST["rad"]; ?> <table width="200" border="1"> <?php while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) { ?> <tr> <td>DBの正解<?php echo $row["seikai"]?><br> 送信された答え=<?php echo $rad?> </td> </tr> <?php } ?> </table> <?php if ($rad == ""){ echo "<p><font color=#FF0000><b>答えを選択して下さい!</b>"; echo "<p><a href=\"form.php\">戻る</a>"; exit (); } //(1)↓ if ($seikai == $rad){ echo "<p><font color=#FF0000><b>正解です!</b></font>"; exit (); } // 接続解除 mysql_close($conn); ?>

    • ベストアンサー
    • MySQL
  • DREAMWEAVERでのMYSQL接続ができません。

    お世話になります。早速ですが、 書籍を参考に、dreamweaver8でローカルにあるMYSQLのデータベースに接続しようと、 [データベースパネル]の[MYSQL接続]をクリックし、 ダイアログに接続名[connBlog(任意)]、MySQLサーバー「localhost」、ユーザー名[root]、パスワード[****(任意)]と入力し、 データベースの[選択]ボタンを押したのですが、 「識別不可能なエラーが発生しました。」とメッセージが表示され、接続できません。 コマンドプロンプトではMYSQLデータベースは確認できるのですが・・・。 まったくの素人なので、わかりにくい質問かもしれませんが、もし解決策などありましたら、教えてください。

専門家に質問してみよう