簡體   English   中英

將MySQL存儲過程與Javascript對象一起使用

[英]Using MySQL stored procedures with Javascript objects

我希望收到有關如何傳遞mySQL存儲過程Javascript表單數據以用作查詢中的參數的指南。

我一直在尋找有關如何使用以JavaScript表單數據為參數的mySQL存儲過程的答案。

到目前為止,這是我所擁有的:

    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);
    })

這是存儲過程:

     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

我的意圖是獲取變量或封裝變量的Javascript對象,然后將其通過“ new_student()”傳遞。

我知道這看似微不足道。 我正在學習如何在Javascript中使用存儲過程。

您需要為函數提供參數。 如果您使用的是node-mysql-native ,則可以使用諸如預處理語句之類的語法來提供參數。

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);
})

有關此信息,請參閱在Node.js中防止SQL注入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM