He creado un formulario para aplicar valores y luego insertarlos en la tabla. Necesito ayuda para enviar un valor de botón de opción a la base de datos
archivo nodejs /ejs
<label class="container" >5 <input type="radio" name="_rate" id="_rate" value="5" required > <span class="checkmark"></span> </label> <label class="container">3 <input type="radio" name="_rate" id="_rate" value="3"> <span class="checkmark"></span> </label> <label class="container">1 <input type="radio" name="_rate" id="_rate" value="1"> <span class="checkmark"></span> </label>aplicación.js
var _rate= req.body._rate; var sql = `INSERT INTO [Test2] (rate) VALUES ('${_rate}')`;¡el valor siempre en la tabla muestra nulo !
¿Qué tipo de datos se espera en el campo de su base de datos?
En cualquier caso, utilice declaraciones preparadas para evitar errores tipográficos como:
INSERT INTO [Test2] (rate) VALUES (?)
ejs:
<form method="POST" action="/"> <label class="container" >5 <input type="radio" name="_rate" id="_rate" value="5" required > <span class="checkmark"></span> </label> <label class="container">3 <input type="radio" name="_rate" id="_rate" value="3"> <span class="checkmark"></span> </label> <label class="container">1 <input type="radio" name="_rate" id="_rate" value="1"> <span class="checkmark"></span> </label> </form>nodos:
const express = require('express'); const mysql = require('mysql2'); const app = express(); const db = mysql.createConnection({ host: //'localhost' or you hostname, user: //'root' or your username, password: //yourpassword, database: //'database name', }) app.post("/", async (req, res)=>{ const _rate = req.body._rate await db.query("INSERT INTO Test2 (rate) VALUES (`${_rate}`)", (err, result) { if (err) { //Handle error } else { //Do whatever you want with `result` } }) app.listen(3000, ()=>{ console.log('Server started working on port 3000') })