一个mysql的的奇怪问题
发布于 12 年前 作者 beiyio 8980 次预览 最后一次回复是 12 年前 来自
var mMysql = require('mysql');
function Select(aWhere,aCallback)
{
mConnection.query("select *from "+aWhere,
function (err, results, fields) {
return aCallback(results,fields);
});
}
另外一个类里调用处
mMySql.Select(tTableName,function (a_results,a_fields )
{
if(a_results.length!=0)
{
.....//省略若干
}
});
现象:同样的参数调用,有的时候程序正常,有的时候会提示a_results.length错误,原因是results 为undefined 是在是不知道是怎么回事,希望路过的高手指点下
13 回复
SQL 不正确
在Select 函数里面加一些有效性判断比较好: err 是否是 undefined, results是否是undefined results的长度判断 等等。
应该不是SQL不正确,参数是我写死的,每次穿进去的都一样
不好重现,恶心死了
求解答呢
用 node-inspector 加断点。出现错误的时候 debug。你的程序没贴全,别人也没法替你测试。 那个 "select *from " 是怎么回事?你的程序里不会这么用吧?
@leapon 是这么用的啊,这么用有什么问题么
@beiyio
星号和FROM中间有空格
http://www.w3schools.com/sql/sql_select.asp
输出了一下error
{ [Error: connect ETIMEDOUT] code: ‘ETIMEDOUT’, errno: ‘ETIMEDOUT’, syscall: ‘connect’, fatal: true }
看错误貌似是连接重连了,但是不清楚是什么原因造成的,
@leapon 3Q
在Node.js中,大家基本上接受这样的约定:
学习了。我的callback凑巧符合这个约定:
受教了~