js操作資料庫
① js 如何讀取資料庫信息
javaScript讀取資料庫信息的方法如下:
JavaScript 本身作為客戶端腳本語言,無法直接讀取伺服器端的資料庫。但可以通過以下步驟間接獲取資料庫信息:
使用Ajax請求:
- JavaScript可以通過Ajax技術向伺服器端發送請求。
- 這個請求可以是一個HTTP GET或POST請求,具體取決於你的需求和伺服器端介面的設計。
伺服器端腳本處理請求:
- 伺服器端需要有一個腳本來處理這個請求,這個腳本可以是PHP、Python、Node.js等編寫的。
- 伺服器端腳本連接到資料庫,並執行相應的sql查詢或資料庫操作來獲取數據。
伺服器端返回數據:
- 伺服器端腳本將查詢結果或資料庫操作的結果轉換為適當的格式,並通過HTTP響應返回給客戶端。
- response.write是其中一種方式,但在現代Web開發中,更常見的是使用JSON格式的數據,並通過res.json或類似的函數返回數據。
JavaScript處理響應:
- Ajax請求的回調函數會接收到伺服器返回的響應數據。
- JavaScript可以解析這些數據,並在頁面上使用這些數據。
示例流程:
- 客戶端:使用JavaScript的fetch或XMLHttpRequest對象發送Ajax請求到伺服器。
- 伺服器端:接收請求,執行資料庫查詢,獲取數據,將數據轉換為JSON格式,並通過HTTP響應返回。
- 客戶端:接收響應,解析JSON數據,並在頁面上使用這些數據。
這種方法確保了資料庫的安全性和隱私性,因為資料庫訪問邏輯在伺服器端執行,客戶端只能通過伺服器端提供的介面獲取數據。
② 如何用javascript操作access資料庫
1.Access資料庫名為 MyData.Mdb, 裡面建了一個名為count的表,表由兩個 欄位組成: ID和COUNT,表裡有一條數據: ('count','100')。
文本文件名為 count.txt,裡面隨便寫入一個數字。
靜態頁面名為Cnt.htm。
2.以上3個文件都放在同一目錄下。
由於採用Access資料庫,而它採用非標准SQL語法,所以要注意在表名和欄位名上需要加方括弧: []
3.下面是頁面里的代碼:其中getCountFromDB方法是對Access資料庫進行操作,getCountFromTxt方法是對txt純文本進行操作,這兩個方法都在本地執行通過。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
function getCountFromDB() {
//以當前頁面文件為基礎,找到文件所在的絕對路徑。
var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm"));
var path = filePath + "MyData.mdb";
//去掉字元串中最前面的"files://"這8個字元。
pathpath = path.substring(8);
var updateCnt = 0;
//生成查詢和更新用的sql語句。
var sqlSelCnt = "SELECT COUNT FROM [COUNT] WHERE ID = 'count'";
var sqlUpdCnt = "UPDATE [COUNT] SET [COUNT] = '";
//建立連接,並生成相關字元串 www.knowsky.com。
var con = new ActiveXObject("ADODB.Connection");
con.Provider = "Microsoft.Jet.OLEDB.4.0";
con.ConnectionString = "Data Source=" + path;
con.open;
var rs = new ActiveXObject("ADODB.Recordset");
rs.open(sqlSelCnt, con);
while (!rs.eof) {
var cnt = rs.Fields("COUNT");
document.write(cnt);
//將取得結果加1後更新資料庫。
updateCnt = cnt * 1 + 1;
rs.moveNext;
}
rs.close();
rs = null;
sqlUpdCntsqlUpdCnt = sqlUpdCnt + updateCnt + "'";
con.execute(sqlUpdCnt);
con.close();
con = null;
}
function getCountFromTxt() {
var filePath = location.href.substring(0, location.href.indexOf("Cnt.htm"));
var path = filePath + "count.txt";
pathpath = path.substring(8);
var nextCnt = 0;
var fso, f1, ts, s;
//以只讀方式打開文本文件。
var ForReading = 1;
//以讀寫方式打開文本文件。
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile(path);
ts = f1.OpenAsTextStream(ForReading, true);
s = ts.ReadLine();
nextCnt = eval(s) + 1;
document.write("now count is :" + s);
ts.Close();
ts = f1.OpenAsTextStream(ForWriting, true);
ts.WriteLine(nextCnt);
ts.close();
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
getCountFromTxt();
//-->
</SCRIPT>
</BODY>
</HTML>
4.用這種方法來讀寫資料庫,只適合做計數器和留言版這樣的不需要保密性的工作,畢竟代碼全是用javascript寫成的,誰都可以看到,然後就可以得到路徑把db文件下載下來進行分析,所以沒辦法用它來保存一些不想讓別人知道的東西。
③ js如何連接和操作騰訊雲mysql資料庫
首先是登陸騰訊雲,登陸之後可以領取新手禮包,如圖
- var mysql = require(『mysql』);
- var connection = mysql.createConnection({
- host:'',
- user:'root',
- password:'123abc',
- database:' nodejs',
- port:6445
- })
- connection.connect();
- /**
- * 增加員工
- */function addEmployee(){
- var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)';
- var employeeInsertSql_Params = ['Tim','男',22,'[email protected]']
- connection.query(employeeInsertSql,employeeInsertSql_Params,function(err,result){
- if(err) console.log('[INSERT ERR]-',err.message);
- console.log(result);
- }) }addEmployee()
- }
- /**
- * 更新員工
- */
- function insertEmployee(){
- var employeeUpdateSql = "UPDATE employee SET name = ? WHERE age =?";
- var employeeUpdateSql_Params = ['Peter',22];
- connection.query(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){
- if(err) console.log('[UPDATE ERR]-',err.message);
- console.log(result);
- })}
- insertEmployee();
- /**
- *查詢員工
- */ function getEmployee(){
- var employeeGetSql = "SELECT * FROM employee";
- connection.query(employeeGetSql,function(err,result){
- if(err) console.log('[SELECT ERR]-',err.message);
- console.log(result);
- })}
- /**
- *刪除員工
- */ function deleteEmployee(){
- var employeeDeleteSql = "DELETE employee WHERE name = ?";
- var employeeDeleteSql_Params = 'Peter';
- connection.query(employeeDeleteSql,employeeDeleteSql_Params,function(err,result){
- if(err) console.log('[DELETE ERR]-',err.message);
- console.log(result);
- })
- }deleteEmployee();
- var mysql = require('mysql');var connection = mysql.createConnection({
- host:'',
- user:'root',
- password:'',
- database:'nodejs',
- port:})connection.connect();/**
- * 增加員工
- * @param {String} employee
- * @param {Function} callback
- */exports.addEmployee=function(employee,callback){
- var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)';
- var employeeInsertSql_Params = [employee.name,employee.sex,employee.age,employee.email]
- connection.query(employeeInsertSql,employeeInsertSql_Params,callback)}/**
- * 更新員工
- * @param {String} employee
- * @param {Function} callback
- */exports.updateEmployee = function(name,age){
- var employeeUpdateSql = "UPDATE employee SET name = ? WHERE age =?";
- var employeeUpdateSql_Params = ['Peter',22];
- connection.query(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){
- if(err) console.log('[UPDATE ERR]-',err.message);
- console.log(result);
- })}/**
- * 查詢員工
- *
- */exports.getEmployee = function(){
- var employeeGetSql = "SELECT * FROM employee";
- connection.query(employeeGetSql,callback)}/**
- * 刪除員工
- * @param {String} name
- */exports.deleteEmployee = function(name){
- var employeeDeleteSql = "DELETE employee WHERE name = ?";
- var employeeDeleteSql_Params = 'Peter';
- connection.query(employeeDeleteSql,employeeDeleteSql_Params,callback)
- }再在根目錄下新建index.js,代碼如下var db = require('./model/employee_two');//增加員工var employee = {
- name:'lisa',
- age:22,
- sex:"女",
- email:'[email protected]'}db.addEmployee(employee,function(err,result){
- if(err) console.log("[INSERT err]-",err.message)
- console.log(result);})//刪除員工db.deleteEmployee('Peter',function(err,result){
- if(err) console.log("[DELETE err]-",err.message)
- console.log(result);})//更新員工db.updateEmployee('Tim',23,function(err,result){
- if(err) console.log("[UPDATE err]-",err.message)
- console.log(result);})//查詢員工db.getEmployee(function(err,result){
- if(err) console.log("[GET err]-",err.message)
- console.log(result);})
1.在實例上上新建一個為nodejs的資料庫,然後新建一個為employee的表,新建四個欄位 name sex age email除了年齡為int其它的全部為varchar格式
2.新建一個TimLiu的文件夾,打開cmd,cd TimLiu, 初始化項目npm init ,按照它的提示一步一步的操作即可,安裝mysql模塊,npm insitall mysql, 這個模塊的作用主要是連接mysql資料庫。
3.新建一個model.js 文件,
這里的host為我們在騰訊雲上開通的外地址,埠號也是在外網地址裡面,注意要把外網地址寫分開,用戶為默認的管理員用戶,密碼為我們在雲平台上設置的密碼,資料庫為我們創建的nodejs資料庫。
接下來我們對資料庫進行增刪改查操作
getEmployee();
這樣我們就可以愉快的操作資料庫了
如果大家想把項目更模塊化操作,可在model下面新建一個employee_two.js,代碼如下