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

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

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

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

SQL

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

解決済

Node.JS上でMySQLへ値を追加する方法がわからない

Azel_T3T
Azeeeel

総合スコア46

MySQL

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

SQL

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

2回答

0評価

0クリップ

440閲覧

投稿2021/12/22 00:12

編集2021/12/22 02:55

初めまして。
SQL,Node.js,HTML.CSSの学習を始めてから5日の初心者です。
作成したフォーラムの内容をデータベースに追加したいのですが、どうにもうまく動かなく困っております。
データベースの内容を参照することはできるので接続はされています。
どなたか解決策をご存じの方いらっしゃいましたらご教授いただけると幸いです。

mysql Ver 14.14 Distrib 5.7.36, for Win64 (x86_64)

HTML.CSS

<form action="/new" method="post"> <ul class="table-body"> <li> <span class="id-column">名前</span> <input class="text2" type="text" size="55" name="name"> </li> <li> <span class="id-column">性別</span> <input class="text2" type="text" size="55" name="gender"> </li> <li> <span class="id-column">住所</span> <input class="text2" type="text" size="55" name="address"> </li> <li> <span class="id-column">番号名</span> <input class="text2" type="text" size="55" name="address2"> </li> <li> <span class="id-column">年齢</span> <input class="text2" type="text" size="55" name="old"> </li> </ul> </form>

Node.js,SQL

app.post('/new', (req, res)=>{ var name_db = req.body.name var gender_db = req.body.gender /*変数はテストなのでとりあえず二つだけです*/ console.log(req.body.name) connection.query( 'INSERT INTO users (name, gender) VALUES ("' + name_db + '", ' + '"' + gender_db + '")', (error, results)=>{ res.redirect('/') console.log(error) }) })

補足

フォーラムの内容ではなく直接文字列を追加する方法も試してみたのですが、こちらもうまく動きませんでした。

Node.js,SQL

app.post('/new', (req, res) => { connection.query( 'INSERT INTO users (name) VALUES ("あ")', (error,results)=>{ console.log(results); res.render('hello-test.ejs'); } ); });

補足2

以下にapp.js全文(途中省略)記載しておきます。

app.js

const express = require('express'); const mysql = require('mysql'); const app = express(); app.use(express.urlencoded({extended: false})); app.use(express.static('public')); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: '*********', database: 'forums' }); connection.connect((err) => { if (err) { console.log('error connecting: ' + err.stack); return; } console.log('success'); }); ~省略~ /*文字列をテーブルへ追加(使うとき以外コメントアウトしています)*/ app.post('/new', (req, res) => { connection.query( "INSERT INTO users (name) VALUES ('あ')", (error,results)=>{ console.log(results); res.render('hello-test.ejs'); } ); }); /*フォーラムで得た情報をテーブルへ追加(使うとき以外コメントアウトしています)*/ app.post('/new', (req, res)=>{ var name_db = req.body.name var gender_db = req.body.gender console.log(req.body.name) connection.query( 'INSERT INTO users (name, gender) VALUES ("' + name_db + '", ' + '"' + gender_db + '")', (error, results)=>{ res.redirect('/') console.log(error) }) }) /*コンソールへテーブルの中身を出力(使うとき以外コメントアウトしています)*/ app.get('/new', (req, res) => { connection.query( 'SELECT * FROM users', (error, results) => { console.log(results); res.render('hello-test.ejs'); } ); }); app.listen(3000);

ファイル状況

test-forum-----node_module---省略 public-----css-----style.css image views------top.ejs forum.ejs hello-test.ejs app.js package.json package-json.lock

良い質問の評価を上げる

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

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

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

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

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/12/22 01:36 編集

データベースは何を使っていますか、MySQLですか? データベースへの接続に関する箇所のコードも質問文中に掲載してください。動的要素のないSQL文の実行も確認できないのであれば、Node.js以外の手段では接続できて実行できるのでしょうか、例えばMySQLならmysqlコマンドラインクライアント上やphpMyAdminなどで接続して実行できるでしょうか。そもそも接続先データベースは作成済みだとして、テーブルはどうやって作成しましたか? 実行環境についても詳しく質問文中に書いてください。Windows11/10だったりmacだったり、そういう基本的なところから確認することも大事です。
Azel_T3T

2021/12/22 02:42 編集

返信ありがとうございます。 データベースはMySQLを使用しています。 OSはWin10を使用しております。 pwだけ隠してSQL関連の部分のみ補足としてコードを記載しておきます。 ファイル状況なども補足に記しておきます。 接続についてはテーブルの中身のコンソールへの出力をためして出来ているところから問題ないと思われます。 またmysqlコマンドラインクライアント上での実行、テーブルへの値の追加は可能でした。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

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

MySQL

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

SQL

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。