关于Node js中Mysql的相关操作
let mysql = require("mysql");
let connection = mysql.createConnection({
host : 'localhost', // 服务器地址
user : 'root', // 数据库用户名
password : 'password', // 密码
port: '3306', // 端口号,默认是3306
database: 'database', // 连接数据库名称
/*上面为基本配置,下面为可选配置
- charset //连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)
- localAddress //此IP用于TCP连接(可选)
- socketPath //连接到unix域路径,当使用 host 和 port 时会被忽略
- timezone //时区(默认:'local')
- connectTimeout //连接超时(默认:不限制;单位:毫秒)
- stringifyObjects //是否序列化对象
- typeCast //是否将列值转化为本地JavaScript类型值 (默认:true)
- queryFormat //自定义query语句格式化方法
- supportBigNumbers //数据库支持bigint或decimal类型列时,需要设此option为true(默认:false)
- dateStrings //强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false)
- debug //开启调试(默认:false)
- multipleStatements //是否许一个query中有多个MySQL语句 (默认:false)
- flags //用于修改连接标志
- ssl //使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件
- localAddress //此IP用于TCP连接(可选)
更多说明请见 https://github.com/mysqljs/mysql
*/
});
// 打开数据库
connection.connection();
// 查询
connection.query(sql,value,callback);
- sql [String] //查询的sql语句
- value [Object] //sql语句中未知的值
- callback [String] //查询的回调
- err //错误信息
- result //查询结果
connection.query("select * from data where id = ?", [1111], function (err,result) {
// 查询表data中id为 1111 的数据
if (err){
console.log(err.message);
}
else {
console.log(result);
}
})
// result 为数组类型,如果查询结果不只一条,可通过下标获取
// 如:获取查询的第一条数据
console.log(result[0]);
// 因查询的结果默认为json格式,所以可以通过 . 来访问到查询的数据项
//如:获取第一条数据的名字
console.log(result[0].name);
// 也可通过 for 来打印所有
for (let i = 0; i < result.length; i++){
console.log(result[i].name);
}
connection.query("insert into data values (?,?,?...)", ['a','b','c',...], function (err,result) {
// 插入一条数据
if (err){
console.log(err.message);
}
else {
console.log("insert success!");
}
})
// 参数可写在参数列表中,也可字符串拼接
let a = "a";
let b = "b";
let c = "c";
connection.query("insert into data values ('"+ a + "','" + b + "','" + c + "')");
// 上面语句等价于
connection.query("insert into data values (?,?,?)", [a,b,c]); // 注意,可传参数,也可传固定值
// function 回调可写可不写
connection.query("insert into data values (?,?,?...)", ['a','b','c',...]);