I am trying to insert data into table that is called detalle pedido in phpmyadmin, but it doesn't work. However, when I insert data into another table called pedido, it works just fine and I am using de same code for both inserts.
Here is the dialogflow console code:
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
const agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
var id_cliente = 0;
var id_producto = 0;
var id_pedido = 0;
var cant_prod = 0;
function queryInsertarPedidoCliente(connection, IdCliente){
return new Promise((resolve, reject) => {
connection.query('CALL SP_Insertar_Pedido_Cliente('+IdCliente+')',
(errors, results, fields) => {
resolve(results);
});
});
}
function queryInsertarProductoPedido(connection, IdPedido, IdArt, Cant){
return new Promise((resolve, reject) => {
connection.query('CALL SP_Insertar_Producto_Pedido('+IdPedido+','+IdArt+','+Cant+')',
(errors, results, fields) => {
resolve(results);
});
});
}
function VerificarCliente(agent) {
const user_phone = agent.parameters.telefono_cliente;
return connectToDB()
.then(connection => {
return queryCliente(connection)
.then(result => {
result.map(user => {
if(user_phone === user.Telefono){
agent.add(`Muy bien ${user.Nombre}.¿Qué desea ordenar?`);
id_cliente = user.idCliente;
queryInsertarPedidoCliente(connection, id_cliente);
return queryPedidoCliente(connection, id_cliente)
.then(result_pedido => {
id_pedido = result_pedido[0][0].idPedido;
});
}
else{
agent.add(`Lo sentimos, parece que no lo tenemos registrado.
Por favor proporcióneme su nombre para poder registrarlo.`);
}
});
connection.end();
});
});
}
function InsertarProducto(agent) {
return connectToDB()
.then(connection => {
agent.add(`Muy bien, ¿quisiera algo más?`);
queryInsertarProductoPedido(connection, id_pedido, id_producto, cant_prod);
connection.end();
});
}
Here are both procedures for inserting into the tables:
DROP PROCEDURE `SP_Insertar_Pedido_Cliente`; CREATE DEFINER=`u532786091_alberto`@`127.0.0.1` PROCEDURE `SP_Insertar_Pedido_Cliente`(IN `ID` INT) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN INSERT INTO pedido(idCliente) VALUES(ID); END
DROP PROCEDURE `SP_Insertar_Producto_Pedido`; CREATE DEFINER=`u532786091_alberto`@`127.0.0.1` PROCEDURE `SP_Insertar_Producto_Pedido`(IN `IdPedido` INT, IN `IdArt` INT, IN `Cant` INT) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN INSERT INTO detalle_pedido(idPedido, idArticulo, Cantidad) VALUES(IdPedido, IdArt, Cant); END
I omitted some parts of the code for security and longevity purposes, but the main problem lies in these sections.