Node.JS 服务器可以在 后端 连接mysql,这时的情况和php是一样的。
我从未见过前端JS直接连接mysql的,原因是:
(1)浏览器内置的javascript 引擎一般只支持websocket,即基于http连接的套接字高层协议,而不是真正的socket,因此除非服务器端也开启websocket服务并拆开套接字转发到mysql,否则无法代理连接
(2)我见过的绝大多数mysql 服务器都工作在服务器环境下的一个虚拟子网,换句话说,直接的远程3306端口是拒绝连接的,这样可以隔绝端口直接攻击
如果前段js直接可以连接后端服务器mysql的端口,那么就不叫B/S结构了,而是C/S结构(比如传统的windows桌面程序),安全上有很多问题,所以大多数浏览器也不支持这个 *** 作。
具体连接方法如下:
1、打开HBuilder工具,在Web项目中的js文件夹中,新建JavaScript文件ConnDB.js
使用require()引入mysql模块,然后赋值给变量mysql
3、再调用createConnection()方法,设置主机、用户名、密码、端口和数据库
4、调用mysql模块中的connect()方法,连接mysql数据库
5、编写一个查询语句SQL,以字符串形式赋值给变量sql
6、最后调用query()方法,通过返回的值进行判断,然后打印返回成功的值
我知道 ie 怎么连接,别的浏览器不行。首先先去mysql官网下载个 odbc 然后安装,安装完再去控制面板找到“管理工具”--》“(ODBC)数据源”--》(如果是在自己电脑上测试就选“用户DSN”,如果想被别人访问就选“系统DSN”) 然后添加mysqlodbc,然后把驱动的名字记下来(不是你起的名字,是后面自带的名字!),准备工作做完,我们就可以通过代码访问数据库了。(注:我第一次安装ODBC,用js调用时提示我未知数据源一类的话,卸载ODBC后再次安装ODBC就正常了) 用 ie 先调用odbc驱动 然后 *** 作mysql,话不多说,上代码!
//创建数据库连接对象
var conn = new ActiveXObject("ADODB.Connection")
//创建数据集对象
var rs = new ActiveXObject("ADODB.Recordset")
try{
//MySQL ODBC 5.3 ANSI Driver这个就是我刚才说让你记得驱动的名字
var connectionstring = "Driver={MySQL ODBC 5.3 ANSI Driver}Server=127.0.0.1User=rootPassword=rootDatabase=mysqlOption=3Port=3306"
console.log(connectionstring)
//打开连接
conn.open(connectionstring)
//查询语句
var sql = " select * from table1 "
//打开数据集(即执行查询语句)
rs.open(sql,conn)
//(或者rs=conn.execute(sql))
//遍历所有记录
while(!rs.eof){
//WScript是Windows 的脚本宿主对象,详细情况请在windows帮助里查找。
//WScript.Echo输出记录的内容
document.write(rs.Fields("id") + "\t" + rs.Fields("name") + "\n")
//下一条记录
rs.moveNext()
}
//关闭记录集
rs.close()
//关闭数据库连接
conn.close()
} catch(e){
//异常报告
document.write(e.message)
} finally{
//
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)