MySQL结果未定义

问题描述

代码应执行并比较ID上的标志。它引发错误TypeError: Cannot read property 'length' of undefined,当我在其中放置console.log以查看结果时,即使它应该从MySQL查询返回,它也返回未定义的状态。 MysqL已正确设置,并且该表存在。 这是因为Javascript是异步的吗?我该如何解决

con.query(`SELECT * FROM pedodb WHERE ID = ?`,[ID],function (err,result,fields) {
                if (result.length > "0") {
            if (result[0].flag == "P") {
                console.log("This isn't logged")
            }
        }
    });

解决方法

我能解释您的观察的唯一方法是结果集为空,或者在查询期间发生错误。要检查这一点,您可以使用:

con.query("SELECT * FROM pedodb WHERE ID = ?",[ID],function (err,result,fields) {
        if (err || !result || result.length == 0) {
            // handle error or empty result set here
            console.log("Something went wrong");
        }
        else if (result[0].flag == "P") {
            console.log("This isn't logged")
        }
    }
);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...