繁体   English   中英

postgresql 错误:where 子句中不存在列“”

[英]postgresql error: column "" does not exist in where clause

我正在尝试检查电子邮件是否已经存在,并且我正在电子邮件参数中发送daniyal@gmail.com ,但收到错误列“daniyal”不存在。

ctx.app.pool.query("SELECT * FROM users WHERE email = " + ctx.request.body.email, (err, result) => {
            if (err) {
                ctx.body = {
                    status: 500,
                    message: 'Something went wrong'
                };
                console.log('Query Error: ', err);
                throw err
            } else {
                ctx.body = {
                    exceptions: "",
                    status: 200,
                    error: false,
                    message: "user already exists with this email",
                };
            }
        });

您的直接问题是您在传递的值周围缺少单引号(因此,Postgres 将其视为列名)。

但是为此,您确实希望使用参数化查询,以提高安全性和效率

ctx.app.pool.query(
    "SELECT * FROM users WHERE email = ?", 
    [ctx.request.body.email], 
    function(err, result) => {
        if (err) {
            ctx.body = {
                status: 500,
                message: 'Something went wrong'
            };
            console.log('Query Error: ', err);
            throw err
        } else {
            ctx.body = {
                exceptions: "",
                status: 200,
                error: false,
                message: "user already exists with this email",
            };
        }
    }
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM