var mysql = require('mysql'); //包含mysql驱动程序

//----------------------------------mysql 连接池--------------------------------------
//连接数据库改成  封装
function mysqlconnet(ho, db) {
    var pool = mysql.createPool({
        connectionLimit: 0, //是个连接后重新再建立连接？为0则永远不丢失？
        host: ho, //做成参数形式
        user: "root",
        password: "usestudio-1",
        database: db,
        port: 3306
    });
    return pool;
}
//----------------------------------统一执行mysql存储过程函数-----------------------------
exports.usselect = function (pArr, callback) {
    var _pro, i; //定义循环变量,对字符串解密
    for (i = 0; i < pArr.length; i++) { pArr[i] = decodeURIComponent(pArr[i]); } //解密中文字符串。
    var _pro = "";
    //如果前台没有传参数过来，则需进这里
    if (pArr[3] == undefined) {
        _pro = "CALL" + " " + pArr[2] + "()";
    }
    else {  //否则有参数
        _pro = "CALL " + "" + pArr[2] + "('"; //命令拼凑
        for (i = 3; i < pArr.length; i++) { _pro += pArr[i]; if (i < pArr.length - 1) _pro += "','"; } //拼凑参数
        _pro += "')"; //拼凑结束。
    }
    console.log("拼凑的MySQl语句为：" + _pro);
    var pool = mysqlconnet(pArr[0], pArr[1]);
    pool.getConnection(function (err, connection) {
        console.log("连接池:" + err);
        //以后还需要加上断线重连问题
        if (err) { console.log("连接池:" + err); callback('false'); }
        else {
            connection.query(_pro, function (err, results, fields) {
                connection.release(); //释放连接池,使用此方法需要更新nodejs的mysql模块： npm install mysql@2.0.0-alpha9 
                if (err) { console.log("MySql查询语句出错:" + err); }
                else if (results) {
                    callback(JSON.stringify(results)); //返回json数据
                    console.log("MySql执行成功！");
                }
                else { callback('false'); }
            });
        }
    });
}
