js怎样连接和调用mysql数据库

js怎样连接和调用mysql数据库,第1张

我知道 ie 怎么连接,别的浏览器不行。首先先去mysql官网下载个 odbc 然后安装,安装完再去控制面板找到“管理工具”--》“(ODBC)数据源”--》(如果是在自己电脑上测试就选

“用户DSN”,如果想被别人访问就选“系统DSN”) 然后添加mysqlodbc,然后把驱动的名字记下来(不是你起的名字,是后面自带的名字!),准备工作做完,我们就可以通过代码访问数据库了。(注:我第一次安装ODBC,用js调用时提示我未知数据源一类的话,卸载ODBC后再次安装ODBC就正常了) 用 ie 先调用odbc驱动 然后 *** 作mysql,话不多说,上代码!

//创建数据库连接对象

var conn = new ActiveXObject("ADODBConnection");

//创建数据集对象

var rs = new ActiveXObject("ADODBRecordset");

try{

//MySQL ODBC 53 ANSI Driver 这个就是我刚才说让你记得驱动的名字

var connectionstring = "Driver={MySQL ODBC 53 ANSI Driver};Server=127001;User=root;Password=root;Database=mysql;Option=3;Port=3306";

consolelog(connectionstring);

//打开连接

connopen(connectionstring);

//查询语句

var sql = " select from table1 ";

//打开数据集(即执行查询语句)

rsopen(sql,conn);

//(或者rs=connexecute(sql);)

//遍历所有记录

while(!rseof){

//WScript是Windows 的脚本宿主对象,详细情况请在windows帮助里查找。

//WScriptEcho输出记录的内容

documentwrite(rsFields("id") + "\t" + rsFields("name") + "\n");

//下一条记录

rsmoveNext();

}

//关闭记录集

rsclose();

//关闭数据库连接

connclose();

} catch(e){

//异常报告

documentwrite(emessage);

} finally{

//

}

首先要明白一个概念 js是客户端加载的不可能让客户端直接连数据库,

如果连了就不安全啊,

所以需要服务端连接数据库,服务端js连数据库我只知道nodejs,你可以看看

套路就是客户端请求服务端,服务端连接数据库获取值再返回到客户端

JS只能连本地数据库,实现你那个功能是AJAX,但那不是纯粹的JS连数据库了,应该说JS连服务器,服务器中的代码替你去取得相应的数据,而且你认为直接用JS连接数据库是件安全的事情吗?直接暴露数据库地址~~~

NodeJS 服务器可以在 后端 连接mysql,这时的情况和php是一样的。

我从未见过前端JS直接连接mysql的,原因是:

(1)浏览器内置的javascript 引擎一般只支持websocket,即基于>

(2)我见过的绝大多数mysql 服务器都工作在服务器环境下的一个虚拟子网,换句话说,直接的远程3306端口是拒绝连接的,这样可以隔绝端口直接攻击

如果前段js直接可以连接后端服务器mysql的端口,那么就不叫B/S结构了,而是C/S结构(比如传统的windows桌面程序),安全上有很多问题,所以大多数浏览器也不支持这个 *** 作。

用到

using SystemDataSqlClient;//命名空间

SQL 查询

string connection_str=@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ChatRoom;Data Source=\sqlexpress";

string select_str="select 字段 from 表名 [where 字段=值]";//"[之间的内容]"是可选的

SqlConnection con=new SqlConnection(connection_str);//一,创建数据库连接对象

SqlCommand com=new SqlCommand(select_str,con);//二,创建数据 *** 作对象

conOpen();//现在用的是连接 *** 作方法,所以要先打开这个数据连接对象的连接

DataReader _dataReader = comExcuteReader();

while(_dataReaderNext())//遍历

{

string temp += dataReader["字段"]ToString()+"\r\n";

}

conClose();//关闭数据库连接对象

MessageBoxShow(temp);

以上这种方法是称为连接式 *** 作。

以下这种方法是称为非连接式 *** 作。

using SystemDataSqlClient;//因为要用到SQL对象

using SystemData;//要用到数据集对象,如以下将要用到:DataSet对象

string connection_str=@"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ChatRoom;Data Source=\sqlexpress";

string select_str="select 字段 from 表名 [where 字段=值]";//"[之间的内容]"是可选的

SqlConnection con=new SqlConnection(connection_str);//一,创建数据库连接对象

SqlDataAdapter DataAdapter=new SqlDataAdapter(select_str,con);//二,创建数据 *** 作对象

DataSet ds=new DataSet();

DataAdapterFill(ds);//DataAdapterFill(填充对象)//函数是将除处理的select_str语句得来结果填充到指定的填充对象

string temp="";

foreact(DataRow dr in dsTable[0]Rows)//遍历

{

temp+=dr["字段"]ToString();

}

MessageBoxShow(temp);

至少楼主说的要增删改查。

就是修改select_str字符串就行了。

select(查询):"Select 字段 from 表名 [where 条件]";

update(更新):"Update 列名 set 字段=值 [where 条件]";

insert(插入):"Insert [into] 表名 Values(字段[,字段,,]) [where 条件]";

delete(删除):"delect from 表名 [where 条件]";

当然,除了select(查询)是有返回数据,其它update(更新),insert(插入),delete(删除)都只是返回 *** 作状态值。

楼主是要这个吗?

<script language="javascript">

//用 javascript 写服务器端连接数据库的代码示例

function conn(){

var db_bbs

db_bbs="ddmdb"//定义数据库

var conn = new ActiveXObject("ADODBConnection");

connOpen("Provider=MicrosoftJetOLEDB40;Data Source="+db_bbs+"");

var rs = new ActiveXObject("ADODBRecordset");

var sql="select name from authors"; //数据库中有authors表,name字段

rsopen(sql,conn);

alert(rs(0))//取出第一个来

connclose();

conn = null;

}

</script>

以下的是sql连接

<script language="javascript">

//用 javascript 写服务器端连接数据库的代码示例

var conn = new ActiveXObject("ADODBConnection");

connOpen("Provider=SQLOLEDB1; Data Source=localhost; User ID=sa; "

+"Password=; Initial Catalog=pubs");

var rs = new ActiveXObject("ADODBRecordset");

var sql="select from authors";

rsopen(sql, conn);

rsclose();

rs = null;

connclose();

conn = null;

</script>

感觉JS连数据库怪怪的,还是分层吧,毕竟数据库连接这样的东西放表现上不太安全。

首先是登陆腾讯云,登陆之后可以领取新手礼包,如图

进入云产品->数据库->CDB for MYSQL->立即选购,选购最低配的可用礼包抵扣使用一个月,购买完成

主页->右上角产品管理->使用中的数据库,这时我们会看见一个实例,首先我们进入管理页面对实例进行一些基本的设置

实例名可以随意更改,外网地址必须开启,否则我们就不能在自己的项目中和本地访问云数据库。进入账号管理页面修改自己的root密码,然后点击右上角的登录数据库

登陆完成之后如下图

这个和本地客户端 *** 作基本相同,我就不详细阐述了

   二、使用一个demo来说明如何 *** 作云mysql数据库

1在实例上上新建一个为nodejs的数据库,然后新建一个为employee的表,新建四个字段 name  sex   age   email除了年龄为int其它的全部为varchar格式

2新建一个TimLiu的文件夹,打开cmd,cd TimLiu, 初始化项目npm init ,按照它的提示一步一步的 *** 作即可,安装mysql模块,npm insitall mysql, 这个模块的作用主要是连接mysql数据库。

3新建一个modeljs 文件,

   var mysql = require(‘mysql’);

   var connection = mysqlcreateConnection({

           host:'',

           user:'root',

           password:'123abc',

           database:' nodejs',

           port:6445

          })

connectionconnect();

这里的host为我们在腾讯云上开通的外地址,端口号也是在外网地址里面,注意要把外网地址写分开,用户为默认的管理员用户,密码为我们在云平台上设置的密码,数据库为我们创建的nodejs数据库。

接下来我们对数据库进行增删改查 *** 作

/

增加员工

/function addEmployee(){

   var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(,,,)';

   var employeeInsertSql_Params = ['Tim','男',22,'18818216454@163com']

   connectionquery(employeeInsertSql,employeeInsertSql_Params,function(err,result){

       if(err) consolelog('[INSERT ERR]-',errmessage);

       consolelog(result);

   }) }addEmployee()

 }

/

更新员工

/

function insertEmployee(){

   var employeeUpdateSql = "UPDATE employee SET name = WHERE age =";

   var employeeUpdateSql_Params = ['Peter',22];

   connectionquery(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){

       if(err) consolelog('[UPDATE ERR]-',errmessage);

       consolelog(result);

   })}

insertEmployee();

/

查询员工

/  function getEmployee(){

   var employeeGetSql = "SELECT FROM employee";

   connectionquery(employeeGetSql,function(err,result){

       if(err) consolelog('[SELECT ERR]-',errmessage);

       consolelog(result);

   })}

getEmployee();

/

删除员工

/  function deleteEmployee(){

   var employeeDeleteSql = "DELETE employee WHERE name = ";

   var employeeDeleteSql_Params = 'Peter';

   connectionquery(employeeDeleteSql,employeeDeleteSql_Params,function(err,result){

       if(err) consolelog('[DELETE ERR]-',errmessage);

       consolelog(result);

   })

   }deleteEmployee();

这样我们就可以愉快的 *** 作数据库了

如果大家想把项目更模块化 *** 作,可在model下面新建一个employee_twojs,代码如下

var mysql = require('mysql');var connection = mysqlcreateConnection({

   host:'',

   user:'root',

   password:'',

   database:'nodejs',

   port:})connectionconnect();/

增加员工

@param {String} employee

@param {Function} callback

/exportsaddEmployee=function(employee,callback){

   var employeeInsertSql = 'INSERT INTO employee(name,sex,age,email) VALUES(,,,)';

   var employeeInsertSql_Params = [employeename,employeesex,employeeage,employeeemail]

   connectionquery(employeeInsertSql,employeeInsertSql_Params,callback)}/

更新员工

@param {String} employee

@param {Function} callback

/exportsupdateEmployee = function(name,age){

   var employeeUpdateSql = "UPDATE employee SET name = WHERE age =";

   var employeeUpdateSql_Params = ['Peter',22];

   connectionquery(employeeUpdateSql,employeeUpdateSql_Params,function(err,result){

       if(err) consolelog('[UPDATE ERR]-',errmessage);

       consolelog(result);

   })}/

查询员工

/exportsgetEmployee = function(){

   var employeeGetSql = "SELECT FROM employee";

   connectionquery(employeeGetSql,callback)}/

删除员工

@param {String} name

/exportsdeleteEmployee = function(name){

   var employeeDeleteSql = "DELETE employee WHERE name = ";

   var employeeDeleteSql_Params = 'Peter';

   connectionquery(employeeDeleteSql,employeeDeleteSql_Params,callback)

   }再在根目录下新建indexjs,代码如下var db = require('/model/employee_two');//增加员工var employee = {

   name:'lisa',

   age:22,

   sex:"女",

   email:'99533212@qqcom'}dbaddEmployee(employee,function(err,result){

   if(err) consolelog("[INSERT err]-",errmessage)

   consolelog(result);})//删除员工dbdeleteEmployee('Peter',function(err,result){

   if(err) consolelog("[DELETE err]-",errmessage)

   consolelog(result);})//更新员工dbupdateEmployee('Tim',23,function(err,result){

   if(err) consolelog("[UPDATE err]-",errmessage)

   consolelog(result);})//查询员工dbgetEmployee(function(err,result){

   if(err) consolelog("[GET err]-",errmessage)

   consolelog(result);})

以上就是关于js怎样连接和调用mysql数据库全部的内容,包括:js怎样连接和调用mysql数据库、前端新人,请问JS如何连接mysql、怎么用js连接数据库呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10216251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存