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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

受付中

phpからmysqlのテーブルにINSERTできないのですが原因が分かりません。

hirotto57
hirotto57

総合スコア57

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

6回答

0評価

0クリップ

29679閲覧

投稿2015/07/05 16:36

phpの初心者です。
phpからmysqlのテーブルにデータ登録されないのですが、原因がさっぱりわかりません。
下記記述のphpファイルから、mysqlにデータを登録させようとしていますが、エラーメッセージは出ませんが、データはMYSQLに登録できません。
INSERT文の記述が間違っているのでしょうか?
ご教示の程、何卒宜しくお願い致します。

テーブルの構造
テーブル名
dat_member

フィールド名
code(AI、int)、date(timestamp)、email(varchar)、password(varchar)、name(varchar)、
nickname(varchar)

shop_form.html

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>会員登録</title> </head> <body>

会員情報を登録してください。<br />

<form method="post" action="shop_form_check.php"> お名前<br /> <input type="text" name="onamae" style="width:200px"><br /> ニックネーム<br /> <input type="text" name="nickname" style="width:200px"><br /> メールアドレス<br /> <input type="text" name="email" style="width:200px"><br /> パスワードを入力してください。<br /> <input type="password" name="pass" style="width:100px"><br /> パスワードをもう1度入力してください。<br /> <input type="password" name="pass2" style="width:100px"><br /> <br /> <input type="button" onclick="history.back()" value="戻る"> <input type="submit" value="OK"><br /> </form> </body> </html>

shop_form_check.php

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>会員情報登録・確認画面</title> </head> <body> <?php require_once('common.php'); //関数でサニタイズ $post=sanitize($_POST); //チェックしてOKなら、各データをshop_form_done.phpにhiddenで渡す。 $onamae=$post['onamae']; $nickname=$post['nickname']; $email=$post['email']; $pass=$post['pass']; $pass2=$post['pass2']; $okflg=true; if($onamae=='') { print 'お名前が入力されていません。<br /><br />'; $okflg=false; } else { print 'お名前<br />'; print $onamae; print '<br /><br />'; } if($nickname=='') { print 'ニックネームが入力されていません。<br /><br />'; $okflg=false; } else { print 'ニックネーム<br />'; print $nickname; print '<br /><br />'; } if(preg_match('/^[\w\-.]+\@[\w\-.]+.([a-z]+)$/',$email)==0) { print 'メールアドレスを正確に入力してください。<br /><br />'; $okflg=false; } else { print 'メールアドレス<br />'; print $email; print '<br /><br />'; } if($pass=='') { print 'パスワードが入力されていません。<br /><br />'; $okflg=false; } if($pass!=$pass2) { print 'パスワードが一致しません。<br /><br />'; $okflg=false; } if($okflg==true) { print '<form method="post" action="shop_form_done.php">'; print '<input type="hidden" name="onamae" value="'.$onamae.'">'; print '<input type="hidden" name="nickname" value="'.$nickname.'">'; print '<input type="hidden" name="email" value="'.$email.'">'; print '<input type="hidden" name="pass" value="'.$pass.'">'; print '<input type="button" onclick="history.back()" value="戻る">'; print '<input type="submit" value="OK"><br />'; print '</form>'; } else { print '<form>'; print '<input type="button" onclick="history.back()" value="戻る">'; print '</form>'; } ?> </body> </html>

shop_form_done.php

<?php session_start(); session_regenerate_id(true); ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>会員登録完了画面</title> </head> <body> <?php try { require_once('common.php'); $post=sanitize($_POST); $onamae=$post['onamae']; $nickname=$post['nickname']; $email=$post['email']; $pass=$post['pass']; print $onamae.'様<br />'; print 'このたびは会員登録頂きありがとうございました。<br />'; print $email.'にメールを送りましたのでご確認ください。<br />'; //データベースに接続 $dsn='mysql:dbname=dat_member;host=localhost;charset=utf8'; $user='root'; $password=''; $dbh=new PDO($dsn,$user,$password); $dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //SQL文を使ってレコードを追加 $sql='INSERT INTO dat_member (email,password,name,nickname) VALUES (?,?,?,?)'; $stmt=$dbh->prepare($sql); //$data=array(); $data[]=$email; $data[]=md5($pass); $data[]=$onamae; $data[]=$nickname; $stmt->execute($data); //データベースから切断 $dbh=null; $title='ご登録ありがとうございます。'; $header='From:abc@mail.com'; $honbun=html_entity_decode($honbun,ENT_QUOTES,'UTF-8'); mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_send_mail($email,$title,$honbun,$header); $title='ユーザー様からご登録がありました。'; $header='From:'.$email; $honbun=html_entity_decode($honbun,ENT_QUOTES,'UTF-8'); mb_language('Japanese'); mb_internal_encoding('UTF-8'); mb_send_mail('abc@mail.com',$title,$honbun,$header); } catch (Exception $e){ print 'ただいま障害により大変ご迷惑をお掛けしております。'; exit(); } ?> </body> </html>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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