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

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

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

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

PHP

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

受付中

PHP・SQL文を用いてのデータテーブルへのデータ挿入

moonli
moonli

総合スコア0

MySQL

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

PHP

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

2回答

0評価

0クリップ

630閲覧

投稿2020/07/25 16:02

前提・実現したいこと

PHPとMySQLを使用してPHPMyAdmin内のデータテーブルにデータを新しく挿入し、データテーブルの中にあるデータの一覧を表示させたいです。
具体的には、別のページで入力された名前と学籍番号、学部、血液型のデータをすでに作ってあるデータテーブルに挿入を目指しています。
しかし、どれだけ打ち間違いを直してもこのエラーが解消できません。
お手数をおかけしますが、ご返答のほどよろしくお願いいたします。

発生している問題・エラーメッセージ

エラーメッセージ Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1','3')' at line 1 in \public_html\web\reg_gakusei_meibo.php:9 Stack trace: #0 \public_html\web\reg_gakusei_meibo.php(9): PDO->query('insert into public...') #1 \public_html\web\ex4-2reg.php(70): include('\\\public_html\web...') #2 {main} thrown in \public_html\web\reg_gakusei_meibo.php on line 9

該当のソースコード

ex4-2reg.php

php

<!doctype html> <html lang="ja"> <head> <meta charset="utf-8"> <link rel="stylesheet" href="ex4-2.css"> <title>ex4 データ登録</title> </head> <center> <body bgcolor="DDC450"> <h1>ex4 データ登録</h1> <?php $r_shimei = htmlspecialchars($_POST["c_shimei"]); print "氏名:".$r_shimei."<br><br>"; $r_gakuseki = htmlspecialchars($_POST["c_gakuseki"],ENT_QUOTES,"UTF-8"); print "学籍番号:" . $r_gakuseki . "<br><br>"; #~省略//データの数字によって何を表示するかの分岐~ include "reg_gakusei_meibo.php"; print "<br>データ登録完了!<br><br>"; ?> <form method = "post" action = "ex4-2datainput.php"> <input class="clear" type = "submit" value = "入力"> </form> <br><br> </body></center> </html>

####reg_gakusei_meibo.php

php

<? include("mysql_access.php"); $db_name = "#ユーザー名"; $db_pass = "#パスワード"; $tbl_name = "gakusei_meibo"; $con = db_connect($db_name,$db_pass); $q = "insert into $db_name.$tbl_name(name,no,gakubu,blood)value('$r_shimei','$r_gakuseki,'$r_gakubu','$r_blood') "; $result = $con->query($q); print "SQL文:".$q."<br>"; print ("登録したデータは以下の通りです.<br>"); $q = "select * from $tbl_name"; datalist_display($result); $con = null; ?>
myspl_access.php

php

<?php //======================== // PDO update:2018a //======================== //ー------------------ (1) ------------------------- function db_connect($db_name, $db_pass){ $db_type = "mysql"; $db_host = "localhost"; $db_user = $db_name; // 文字化け対策 $options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'"); // PHPのエラーを表示するように設定 error_reporting(E_ALL & ~E_NOTICE); // データベースの接続 $dsn = $db_type . ':host=' . $db_host . ';dbname=' . $db_name . ';charset=utf8'; // print ($dsn); try { $dbh = new PDO($dsn, $db_user , $db_pass, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ]); // print("DB接続成功!"); } catch (PDOException $e) { // print ("DB接続エラー ") ; exit($e->getMessage()); } return $dbh; } //ー------------------ (2) ------------------------- function datalist_display($result){ $dat_cnt = $result->rowCount(); $col_cnt = $result->columnCount(); print "データの個数 : " . $dat_cnt . "<br>"; print "<table border=1>"; // fields print "<tr>"; for ($i=0; $i < $col_cnt ;$i++){ $col_name =$result->getColumnMeta($i)['name']; print "<th>$col_name</th>"; } print "</tr>"; // data while ($row = $result->fetch(PDO::FETCH_ASSOC)) { print "<tr>"; foreach ($row as $val) { print "<td>$val</td>"; } print "</tr>"; } print "</table>"; } ?>

補足情報(FW/ツールのバージョンなど)

OS:Windows10
作成ツール:AdobeDreamweaver CC 18.2
サーバのバージョン: 8.0.18 - MySQL Community Server - GPL

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

m.ts10806

2020/07/25 20:45

phpMyAdminはあくまでMySQL(またはMariaDB)を操作するツールであってDBそのものではありません。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

MySQL

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

PHP

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