質問編集履歴

1 sql文のコード箇所追記

tetsuya19

tetsuya19 score 13

2016/08/21 00:01  投稿

SQL文のエラーメッセージの意味
PHPの中でsql文を入れています。
フィールドに入れる値の順序と型は確認して、合わせています。
しかし、sql文に関してエラーが出力されました。
エラー内容についてどなたかご教授ください。
実行結果として、下記メッセージが出力されました。
object(PDOException)#3 (8) { ["message":protected]=> string(78) "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'danjo' in 'field list'" ["string":"Exception":private]=> string(0) "" ["code":protected]=> string(5) "42S22" ["file":protected]=> string(41) "
object(PDOException)#3 (8) { ["message":protected]=> string(78) "SQLSTATE[42S22]: Column not found: 1054 Unknown column 'danjo' in 'field list'" ["string":"Exception":private]=> string(0) "" ["code":protected]=> string(5) "42S22" ["file":protected]=> string(41) "
実行したコードのSQL文は下記となります。
$lastmembercode=0;
$dsn='mysql:dbname=ranzan;host=localhost;charset=utf8';
$user='root';
$password='';
$dbh=new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
try {
   $sql='INSERT INTO student (password,name,email,postal1,postal2,address,tel,danjo,born) VALUES (?,?,?,?,?,?,?,?,?)';
   $stmt=$dbh->prepare($sql);
   $data=array();
   $data[]=md5($password);
   $data[]=$name;
   $data[]=$email;
   $data[]=$postal1;
   $data[]=$postal2;
   $data[]=$address;
   $data[]=$tel;
   if($danjo=='dan')
   {
       $data[]=1;
   }
   else
   {
       $data[]=2;
   }
   $data[]=$born;
   $stmt->execute($data);
   $sql='SELECT LAST_INSERT_ID()';
   } catch (Exception $e) {
   var_dump($e);
}
   
   $stmt=$dbh->prepare($sql);
   $stmt->execute();
   $rec=$stmt->fetch(PDO::FETCH_ASSOC);
   $lastmembercode=$rec['LAST_INSERT_ID()'];
$dbh=null;
   print '会員登録が完了いたしました。<br />';
  • SQL

    5513 questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る