这个逻辑有什么问题?
var selectString = 'SELECT EXISTS(SELECT 1 FROM users WHERE user="'+username+'")';
var queryUserExists = connection.query(selectString);
var resultsLength = queryUserExists._results.length;
console.log(queryUserExists);
if(resultsLength > 0){
socket.write("fail user already exists"+"\r\n");
} else {
console.log('insert=');
var query = connection.query (
'INSERT INTO users '+
'SET user = ?, password = ?, token = ?',
[username, password, token]
);
socket.write("success"+"\r\n");
}
resultsLength始终返回零。应该如何正确使用此查询?
返回的对象:
sql: 'SELECT 1 FROM users WHERE user = \'a new user is my name\' ORDER BY user LIMIT 1',
typeCast: true,
nestTables: false,
_resultSet: null,
_results: [],
_fields: [],
_index: 0,
_loadError: null }
var selectString = '我发布的查询';
中替换查询。 - Mahmoud Gamal1
,以表示找到了用户,或者返回NULL
值,或者在未找到用户的情况下没有返回任何行。我不太清楚如何使用您拥有的 node.js 代码进行测试,但这是基本思路。 - Mahmoud Gamaluser
变量被像这样使用\
括起来\'a new user is my name\'
。这可能是问题所在。在执行查询之前尝试打印查询,用户参数的值不应该被这些\所包围。 - Mahmoud Gamal