Node.js 操作 MySQL
golang 請參考 https://app.gitbook.com/@easonwang/s/golang/databasecao-zuo/mysql
1.npm 安裝 mysql
npm install mysql --save2.測試連線
cosnt express = require('express');
const mysql = require('mysql');
var connection = mysql.createConnection({
host : 'db4free.net',
user : 'forclass',
password : 'test123',
database : 'fruit'
});
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
const app = express();
app.use(express.static(__dirname + '/public'));/* 將預設路徑設在public*/
app.listen(8080);3.成功連線後可插入資料或到下面網址管理資料庫 https://www.db4free.net/phpMyAdmin
操控資料庫
CREATE TABLE
記得每段分行要用+號,因為javascript分行要用字串聯接
或是
使用ES6 的新字元串` ,可跨行連接字段
如要使用變數記得用${}
insert column
insert row
另一種方式
Read data
完整版
或是使用??
UPDATE
加上where,限制要更新的row
使用?號
有關? 與??
範例1
範例2
使用escape,防止injection
可達到的效果
1.
escape()
跟?作用相同
如果要excape的是name
使用escapeId()
使用??一樣效果
(??是給mysql module 內的function解析的,所以他不是變數,不用字串包住前後)
insert資料時傳回該筆insert id(主鍵)
複習sql語法
資料表查詢
SELECT
欄位FROM資料表;一般用法: SELECT * FROM
table;翻譯:選擇table這個資料表所有欄位的資料(就是全選啦!!)
備註:星號代表所有欄位,在sql語法、指令中星號代表全部
資料表查詢 + 排序
SELECT
欄位FROM資料表ORDER BY特定欄位DESC ;一般用法: SELECT
id,nameFROMtableORDER BY特定欄位DESC ;翻譯: 選取table資料表內的 id 和 name 這兩個欄位,並根據id這欄位做降冪排序(由高而低、由大到小、由z到a)
備註:ASC則是(由低而高、由小到大、由a到z),與DESC相反
資料表查詢 + 查詢條件
SELECT
欄位FROM資料表WHERE特定欄位= 數字 ;一般用法: SELECT * FROM
tableWHEREid= 363 ;翻譯: 在table資料表內的尋找 id 欄位的內容是 363 且將 所有欄位的資料都取出來
使用完記得關閉
參考至:
https://www.npmjs.com/package/mysql#getting-the-id-of-an-inserted-row
http://www.sitepoint.com/using-node-mysql-javascript-client/
Last updated
Was this helpful?