JS訪問(wèn)數(shù)據(jù)庫(kù)應(yīng)該是可以的,前提是你必須把網(wǎng)頁(yè)保存成*.hta格式。html格式的文件沒(méi)有足夠的權(quán)限。
成都創(chuàng)新互聯(lián)是專業(yè)的鐘樓網(wǎng)站建設(shè)公司,鐘樓接單;提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鐘樓網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
樓主如果想在網(wǎng)頁(yè)中訪問(wèn)數(shù)據(jù)庫(kù),就不要使用JS吧,PHP/ASP/JSP都行。
如果樓主想做一個(gè)本地使用的程序訪問(wèn)數(shù)據(jù)庫(kù),那只要把頁(yè)面存成hta就行了。
具體連接方法如下:
1、打開(kāi)HBuilder工具,在Web項(xiàng)目中的js文件夾中,新建JavaScript文件ConnDB.js
使用require()引入mysql模塊,然后賦值給變量mysql
3、再調(diào)用createConnection()方法,設(shè)置主機(jī)、用戶名、密碼、端口和數(shù)據(jù)庫(kù)
4、調(diào)用mysql模塊中的connect()方法,連接mysql數(shù)據(jù)庫(kù)
5、編寫一個(gè)查詢語(yǔ)句SQL,以字符串形式賦值給變量sql
6、最后調(diào)用query()方法,通過(guò)返回的值進(jìn)行判斷,然后打印返回成功的值
我知道 ie 怎么連接,別的瀏覽器不行。首先先去mysql官網(wǎng)下載個(gè) odbc 然后安裝,安裝完再去控制面板找到“管理工具”--》“(ODBC)數(shù)據(jù)源”--》(如果是在自己電腦上測(cè)試就選
“用戶DSN”,如果想被別人訪問(wèn)就選“系統(tǒng)DSN”) 然后添加mysqlodbc,然后把驅(qū)動(dòng)的名字記下來(lái)(不是你起的名字,是后面自帶的名字!),準(zhǔn)備工作做完,我們就可以通過(guò)代碼訪問(wèn)數(shù)據(jù)庫(kù)了。(注:我第一次安裝ODBC,用js調(diào)用時(shí)提示我未知數(shù)據(jù)源一類的話,卸載ODBC后再次安裝ODBC就正常了) 用 ie 先調(diào)用odbc驅(qū)動(dòng) 然后操作mysql,話不多說(shuō),上代碼!
//創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象
var conn = new ActiveXObject("ADODB.Connection");
//創(chuàng)建數(shù)據(jù)集對(duì)象
var rs = new ActiveXObject("ADODB.Recordset");
try{
//MySQL ODBC 5.3 ANSI Driver 這個(gè)就是我剛才說(shuō)讓你記得驅(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);
//打開(kāi)連接
conn.open(connectionstring);
//查詢語(yǔ)句
var sql = " select * from table1 ";
//打開(kāi)數(shù)據(jù)集(即執(zhí)行查詢語(yǔ)句)
rs.open(sql,conn);
//(或者rs=conn.execute(sql);)
//遍歷所有記錄
while(!rs.eof){
//WScript是Windows 的腳本宿主對(duì)象,詳細(xì)情況請(qǐng)?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ù)庫(kù)連接
conn.close();
} catch(e){
//異常報(bào)告
document.write(e.message);
} finally{
//
}
首先是登陸騰訊云,登陸之后可以領(lǐng)取新手禮包,如圖
進(jìn)入云產(chǎn)品-數(shù)據(jù)庫(kù)-CDB for MYSQL-立即選購(gòu),選購(gòu)最低配的可用禮包抵扣使用一個(gè)月,購(gòu)買完成
主頁(yè)-右上角產(chǎn)品管理-使用中的數(shù)據(jù)庫(kù),這時(shí)我們會(huì)看見(jiàn)一個(gè)實(shí)例,首先我們進(jìn)入管理頁(yè)面對(duì)實(shí)例進(jìn)行一些基本的設(shè)置
實(shí)例名可以隨意更改,外網(wǎng)地址必須開(kāi)啟,否則我們就不能在自己的項(xiàng)目中和本地訪問(wèn)云數(shù)據(jù)庫(kù)。進(jìn)入賬號(hào)管理頁(yè)面修改自己的root密碼,然后點(diǎn)擊右上角的登錄數(shù)據(jù)庫(kù)
登陸完成之后如下圖
這個(gè)和本地客戶端操作基本相同,我就不詳細(xì)闡述了
二、使用一個(gè)demo來(lái)說(shuō)明如何操作云mysql數(shù)據(jù)庫(kù)
1.在實(shí)例上上新建一個(gè)為nodejs的數(shù)據(jù)庫(kù),然后新建一個(gè)為employee的表,新建四個(gè)字段 name ?sex ? age ? email除了年齡為int其它的全部為varchar格式
2.新建一個(gè)TimLiu的文件夾,打開(kāi)cmd,cd TimLiu, 初始化項(xiàng)目npm init ,按照它的提示一步一步的操作即可,安裝mysql模塊,npm insitall mysql, 這個(gè)模塊的作用主要是連接mysql數(shù)據(jù)庫(kù)。
3.新建一個(gè)model.js 文件,
var mysql = require(‘mysql’);
var connection = mysql.createConnection({
? ? ?host:'',
? ? ?user:'root',
? ? ?password:'123abc',
? ? ?database:' nodejs',
? ? ?port:6445
? ? })
connection.connect();
這里的host為我們?cè)隍v訊云上開(kāi)通的外地址,端口號(hào)也是在外網(wǎng)地址里面,注意要把外網(wǎng)地址寫分開(kāi),用戶為默認(rèn)的管理員用戶,密碼為我們?cè)谠破脚_(tái)上設(shè)置的密碼,數(shù)據(jù)庫(kù)為我們創(chuàng)建的nodejs數(shù)據(jù)庫(kù)。
接下來(lái)我們對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查操作
/**
* 增加員工
*/function addEmployee(){
var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(?,?,?,?)';
var employeeInsertSql_Params = ['Tim','男',22,'18818216454@163點(diǎn)抗 ']
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ù)庫(kù)了
如果大家想把項(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點(diǎn)抗 '}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);})