Node.JS 服務(wù)器可以在 后端 連接mysql,這時(shí)的情況和php是一樣的。
成都創(chuàng)新互聯(lián)公司成立10年來(lái),這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、國(guó)際域名空間、網(wǎng)絡(luò)營(yíng)銷(xiāo)、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開(kāi)快等等,這些對(duì)于網(wǎng)站建設(shè)都非常重要,成都創(chuàng)新互聯(lián)公司通過(guò)對(duì)建站技術(shù)性的掌握、對(duì)創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
我從未見(jiàn)過(guò)前端JS直接連接mysql的,原因是:
(1)瀏覽器內(nèi)置的javascript 引擎一般只支持websocket,即基于http連接的套接字高層協(xié)議,而不是真正的socket,因此除非服務(wù)器端也開(kāi)啟websocket服務(wù)并拆開(kāi)套接字轉(zhuǎn)發(fā)到mysql,否則無(wú)法代理連接
(2)我見(jiàn)過(guò)的絕大多數(shù)mysql 服務(wù)器都工作在服務(wù)器環(huán)境下的一個(gè)虛擬子網(wǎng),換句話說(shuō),直接的遠(yuǎn)程3306端口是拒絕連接的,這樣可以隔絕端口直接攻擊
如果前段js直接可以連接后端服務(wù)器mysql的端口,那么就不叫B/S結(jié)構(gòu)了,而是C/S結(jié)構(gòu)(比如傳統(tǒng)的windows桌面程序),安全上有很多問(wèn)題,所以大多數(shù)瀏覽器也不支持這個(gè)操作。
我知道 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ù)源一類(lèi)的話,卸載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{
//
}
可以使用MySQL的內(nèi)置函數(shù)SELECT來(lái)調(diào)用MySQL數(shù)據(jù)庫(kù),例如:
SELECT * FROM [table_name];
其中[table_name]表示要調(diào)用的表名。
NineData是一款非常有特色的數(shù)據(jù)庫(kù)SQL開(kāi)發(fā)產(chǎn)品,對(duì)MySQL常用功能支持非常完整,支持多種連接和訪問(wèn)云數(shù)據(jù)庫(kù)的方式,對(duì)阿里云、騰訊云、華為云、AWS等都有比較好的支持。另外,也適配國(guó)內(nèi)比較流行的PolarDB、GaussDB、TDSQL等數(shù)據(jù)庫(kù)。對(duì)于新用戶NineData還會(huì)贈(zèng)送兩個(gè)示例數(shù)據(jù)庫(kù),供用戶使用。