1. 程式人生 > >node總結之MySQL增刪改查操作了解下

node總結之MySQL增刪改查操作了解下

廢話不多說啊,先來看node中安裝MySQL包的命令:

cnpm install mysql

完事看個簡單的查詢例項,先來感受下:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : 'root',
  database : 'test'
});
 
connection.connect();
 
connection.query('SELECT * from admins', function (error, results, fields) {
  if (error) throw error;
  console.log('The title is: ', results[0].title);
});

admins表的基礎資料如下:

再來看下MySQL連線引數說明:

引數 描述
host 主機地址 (預設:localhost)
  user 使用者名稱
  password 密碼
  port 埠號 (預設:3306)
  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)
  bigNumberStrings supportBigNumbers和bigNumberStrings啟用 強制bigint或decimal列以JavaScript字串型別返回(預設:false)
  dateStrings 強制timestamp,datetime,data型別以字串型別返回,而不是JavaScript Date型別(預設:false)
  debug 開啟除錯(預設:false)
  multipleStatements 是否許一個query中有多個MySQL語句 (預設:false)
  flags 用於修改連線標誌
  ssl 使用ssl引數(與crypto.createCredenitals引數格式一至)或一個包含ssl配置檔名稱的字串,目前只捆綁Amazon RDS的配置檔案

想了解更多可以戳這裡

來看完整查詢例項:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : 'root',
  database : 'test'
});
 
connection.connect();
 
connection.query('SELECT * from admins', function (error, results, fields) {
  if (error) throw error;
  console.log(results);
});
 
connection.end();

輸出結果為:

來看一個完整的插入例項:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : 'root',
  database : 'test'
});
 
connection.connect();
 
var  addSql = 'INSERT INTO admins(id,title,cookies,sta,lid) VALUES(0,?,?,?,?)';
var  addSqlParams = ['luyaran', 'luyaran201314','3', '4'];

connection.query(addSql,addSqlParams,function (err, result) {
        if(err){
         console.log('[INSERT ERROR] - ',err.message);
         return;
        }        
 
       console.log('--------------------------INSERT----------------------------');
       console.log('INSERT ID:',result.insertId);        
       console.log('INSERT ID:',result);        
       console.log('-----------------------------------------------------------------\n\n');  
});
 
connection.end();

執行結果如下:

還有完整的修改案例:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : 'root',
  database : 'test'
});
 
connection.connect();
 
var  addSql = 'INSERT INTO admins(id,title,cookies,sta,lid) VALUES(0,?,?,?,?)';
var  addSqlParams = ['luyaran', 'luyaran201314','3', '4'];

var modSql = 'UPDATE admins SET title = ?,cookies = ? WHERE Id = ?';
var modSqlParams = ['cuijinpeng', 'cuijinpeng201314',188];

connection.query(modSql,modSqlParams,function (err, result) {
   if(err){
         console.log('[UPDATE ERROR] - ',err.message);
         return;
   }        
  console.log('--------------------------UPDATE----------------------------');
  console.log('UPDATE affectedRows',result.affectedRows);
  console.log('-----------------------------------------------------------------\n\n');
});
 
connection.end();

輸出結果為:

刪除案例如下:

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'root',
  password : 'root',
  database : 'test'
});
 
connection.connect();
 
var delSql = 'DELETE FROM admins where id=188';

connection.query(delSql,function (err, result) {
        if(err){
          console.log('[DELETE ERROR] - ',err.message);
          return;
        }        
 
       console.log('--------------------------DELETE----------------------------');
       console.log('DELETE affectedRows',result.affectedRows);
       console.log('-----------------------------------------------------------------\n\n');  
});
 
connection.end();

執行結果為:

好啦,本次記錄就到這裡了。

如果感覺不錯的話,請多多點贊支援哦。。。