JS訪問數(shù)據(jù)庫應(yīng)該是可以的,前提是你必須把網(wǎng)頁保存成*.hta格式。html格式的文件沒有足夠的權(quán)限。
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計(jì),高郵網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:高郵等地區(qū)。高郵做網(wǎng)站價(jià)格咨詢:18980820575
樓主如果想在網(wǎng)頁中訪問數(shù)據(jù)庫,就不要使用JS吧,PHP/ASP/JSP都行。
如果樓主想做一個(gè)本地使用的程序訪問數(shù)據(jù)庫,那只要把頁面存成hta就行了。
首先是登陸騰訊云,登陸之后可以領(lǐng)取新手禮包,如圖
進(jìn)入云產(chǎn)品-數(shù)據(jù)庫-CDB for MYSQL-立即選購,選購最低配的可用禮包抵扣使用一個(gè)月,購買完成
主頁-右上角產(chǎn)品管理-使用中的數(shù)據(jù)庫,這時(shí)我們會(huì)看見一個(gè)實(shí)例,首先我們進(jìn)入管理頁面對實(shí)例進(jìn)行一些基本的設(shè)置
實(shí)例名可以隨意更改,外網(wǎng)地址必須開啟,否則我們就不能在自己的項(xiàng)目中和本地訪問云數(shù)據(jù)庫。進(jìn)入賬號管理頁面修改自己的root密碼,然后點(diǎn)擊右上角的登錄數(shù)據(jù)庫
登陸完成之后如下圖
這個(gè)和本地客戶端操作基本相同,我就不詳細(xì)闡述了
二、使用一個(gè)demo來說明如何操作云mysql數(shù)據(jù)庫
1.在實(shí)例上上新建一個(gè)為nodejs的數(shù)據(jù)庫,然后新建一個(gè)為employee的表,新建四個(gè)字段 name ?sex ? age ? email除了年齡為int其它的全部為varchar格式
2.新建一個(gè)TimLiu的文件夾,打開cmd,cd TimLiu, 初始化項(xiàng)目npm init ,按照它的提示一步一步的操作即可,安裝mysql模塊,npm insitall mysql, 這個(gè)模塊的作用主要是連接mysql數(shù)據(jù)庫。
3.新建一個(gè)model.js 文件,
var mysql = require(‘mysql’);
var connection = mysql.createConnection({
? ? ?host:'',
? ? ?user:'root',
? ? ?password:'123abc',
? ? ?database:' nodejs',
? ? ?port:6445
? ? })
connection.connect();
這里的host為我們在騰訊云上開通的外地址,端口號也是在外網(wǎng)地址里面,注意要把外網(wǎng)地址寫分開,用戶為默認(rèn)的管理員用戶,密碼為我們在云平臺(tái)上設(shè)置的密碼,數(shù)據(jù)庫為我們創(chuàng)建的nodejs數(shù)據(jù)庫。
接下來我們對數(shù)據(jù)庫進(jìn)行增刪改查操作
/**
* 增加員工
*/function addEmployee(){
var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)';
var employeeInsertSql_Params = ['Tim','男',22,'18818216454@163.com']
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);
})}
getEmployee();
/**
*刪除員工
*/ ?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();
這樣我們就可以愉快的操作數(shù)據(jù)庫了
如果大家想把項(xiàng)目更模塊化操作,可在model下面新建一個(gè)employee_two.js,代碼如下
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:'99533212@qq.com'}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);})
我知道 ie 怎么連接,別的瀏覽器不行。首先先去mysql官網(wǎng)下載個(gè) odbc 然后安裝,安裝完再去控制面板找到“管理工具”--》“(ODBC)數(shù)據(jù)源”--》(如果是在自己電腦上測試就選
“用戶DSN”,如果想被別人訪問就選“系統(tǒng)DSN”) 然后添加mysqlodbc,然后把驅(qū)動(dòng)的名字記下來(不是你起的名字,是后面自帶的名字?。瑴?zhǔn)備工作做完,我們就可以通過代碼訪問數(shù)據(jù)庫了。(注:我第一次安裝ODBC,用js調(diào)用時(shí)提示我未知數(shù)據(jù)源一類的話,卸載ODBC后再次安裝ODBC就正常了) 用 ie 先調(diào)用odbc驅(qū)動(dòng) 然后操作mysql,話不多說,上代碼!
//創(chuàng)建數(shù)據(jù)庫連接對象
var conn = new ActiveXObject("ADODB.Connection");
//創(chuàng)建數(shù)據(jù)集對象
var rs = new ActiveXObject("ADODB.Recordset");
try{
//MySQL ODBC 5.3 ANSI Driver 這個(gè)就是我剛才說讓你記得驅(qū)動(dòng)的名字
var connectionstring = "Driver={MySQL ODBC 5.3 ANSI Driver};Server=127.0.0.1;User=root;Password=root;Database=mysql;Option=3;Port=3306";
console.log(connectionstring);
//打開連接
conn.open(connectionstring);
//查詢語句
var sql = " select * from table1 ";
//打開數(shù)據(jù)集(即執(zhí)行查詢語句)
rs.open(sql,conn);
//(或者rs=conn.execute(sql);)
//遍歷所有記錄
while(!rs.eof){
//WScript是Windows 的腳本宿主對象,詳細(xì)情況請?jiān)趙indows幫助里查找。
//WScript.Echo輸出記錄的內(nèi)容
document.write(rs.Fields("id") + "\t" + rs.Fields("name") + "\n");
//下一條記錄
rs.moveNext();
}
//關(guān)閉記錄集
rs.close();
//關(guān)閉數(shù)據(jù)庫連接
conn.close();
} catch(e){
//異常報(bào)告
document.write(e.message);
} finally{
//
}