2016-04-25 18 views
0

Ich hoffe, eine Anleitung zu erhalten, wie Sie eine gespeicherte JavaScript-Prozedur-Formatsdatei übergeben, um sie als Parameter in einer Abfrage zu verwenden.Gespeicherte MySQL-Prozeduren mit Javascript-Objekten verwenden

Ich habe nach einer Antwort zur Verwendung von gespeicherten mySQL-Prozeduren mit JavaScript-Formulardaten als Parameter gesucht.

Das ist, was ich habe bisher:

var first_name = req.body.firstName, 
     last_name= req.body.lastName, 
     email= req.body.email, 
     password= req.body.password, 
     gpa= req.body.gpa, 
     major = req.body.major, 
     classification= req.body.classification; 
    var query = connection.query("CALL new_student()", function (err, result) { 
     if (err) { 
      res.send(err); 
     } 
     res.json(result); 
    }) 

Hier ist die gespeicherte Prozedur:

 CREATE DEFINER=`root`@`localhost` PROCEDURE `new_student`(IN first_name VARCHAR(45), 
IN last_name VARCHAR(45), IN email VARCHAR(45), IN password VARCHAR(45), IN gpa DECIMAL(3,2), 
IN major INT(10), IN classification VARCHAR(45)) 
BEGIN 
INSERT INTO users (first_name, last_name, email, password) 
VALUES (first_name, last_name, email, password); 
INSERT INTO student (user_id, gpa, major, classification) 
VALUES (LAST_INSERT_ID(),gpa, major, classification); 
END 

Meine Absicht ist es, die Variablen zu nehmen, oder ein Javascript-Objekt, das die Variablen kapselt und gib sie durch "new_student()" weiter.

Ich bin mir bewusst, dass dies trivial erscheinen mag. Ich bin dabei, zu lernen, wie gespeicherte Prozeduren mit Javascript verwendet werden.

+0

Die 'new_student()' Funktion sehen. Sie geben keine Parameter an, wenn Sie sie aufrufen. – Barmar

Antwort

1

Sie müssen Argumente für die Funktion bereitstellen. Wenn Sie die node-mysql-native verwenden, können Sie die Parameter mit Syntax wie eine vorbereitete Anweisung bereitstellen.

var query = connection.query("CALL new_student(?, ?, ?, ?, ?, ?, ?)", [first_name, last_name, email, password, gpa, major, classification], 
    function (err, result) { 
    if (err) { 
     res.send(err); 
    } 
    res.json(result); 
}) 

Weitere Informationen zu diesem Thema mehrere Parameter Preventing SQL injection in Node.js

+0

Ich schätze es Tonnen! – mapage2

Verwandte Themen