十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我知道 ie 怎么连接,别的浏览器不行。首先先去mysql官网下载个 odbc 然后安装,安装完再去控制面板找到“管理工具”--》“(ODBC)数据源”--》(如果是在自己电脑上测试就选
10年积累的成都网站设计、成都网站建设、外贸网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有君山免费网站建设让你可以放心的选择与我们合作。
“用户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.1;User=root;Password=root;Database=mysql;Option=3;Port=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{
//
}
JS访问数据库应该是可以的,前提是你必须把网页保存成*.hta格式。html格式的文件没有足够的权限。
楼主如果想在网页中访问数据库,就不要使用JS吧,PHP/ASP/JSP都行。
如果楼主想做一个本地使用的程序访问数据库,那只要把页面存成hta就行了。
安装
$ npm install mysql
有关之前的0.9.x版本的信息, 请访问 v0.9分支。
有时我还会要求你从Github安装最新版以检查bug是否已修复。在这种情况下,请输入:
$ npm install mysqljs/mysql
引言
这是node.js的mysql驱动。它是用JavaScript编写的,不需要编译,完全遵循MIT许可协议。
下面是一个如何使用它的例子:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});
connection.end();
从这个例子中,你可以了解到以下几点:
对于一个连接,你所调用的每个方法都是按顺序排队并依次执行的。
使用end()关闭连接,以确保给mysql服务器发送退出(quit)包以前执行所有剩余的查询。
推荐的建立链接的一个方法:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'example.org',
user : 'bob',
password : 'secret'
});
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
然后,我们可以通过建立一个连接来进行查询:
var mysql = require('mysql');
var connection = mysql.createConnection(...);
connection.query('SELECT 1', function(err, rows) {
// connected! (unless `err` is set)
});
以上二种方法都是正确且合适的。至于如何取舍,就要看你怎么去处理所遇到的错误了。不管哪种类型的错误,那都是致命的,我们需要去看所提示的具体的错误信息。
连接参数
在建立新连接时,可以设置以下参数:
host:连接的数据库地址。(默认:localhost)
port:连接地址对应的端口。(默认:3306)
localAddress: 源IP地址使用TCP连接。(可选)
socketPath:当主机和端口参数被忽略的时候,可以填写一个Unix的Socket地址。
user: mysql的连接用户名。
password: 对应用户的密码。
database: 所需要连接的数据库的名称。(可选)
charset: 连接的编码形式。这就是mysql中的整理。(例如:utf8_general_ci)如果被指定,则作为默认的整理排序规则。(默认:utf8_general_ci)
timezone:用来保存当前本地的时区。(默认:local)
connectTimeout: 设置在连接的时候,超过多久以后未响应则返回失败。(默认:10000)
stringifyObjects: stringify对象代替转换值。issue# 501。(默认:false)
insecureAuth:使用旧(不安全)的连接方式去连接MySQL。(默认:false)
typeCast: 确定列值是否需要转换为本地JavaScript类型。(默认:true)
queryFormat:自定义查询的方式。地址:Custom format.
supportBigNumbers: 如果你使用了BIGINT和DECIMAL格式的表列,那么需要开启这个参数来支持。(默认:false)只有当他们超过JavaScript所能表达的 最长的字节的时候,如果没有设置这个参数,则会将过长的数字作为字符串传递。否则,返回对象的长度。如果supportBigNumbers参数被忽略, 则这个参数也会被忽略。
dateStrings:一些日期类型(TIMESTAMP, DATETIME, DATE)会以Strings的类型返回,然后转换成JavaScript的日期对象。(默认:false)
debug:是否把连接情况打印到文件。(默认:false)
trace: 生成错误的堆栈跟踪,包括库入口的调用位置(“长堆栈的轨迹”)。一般会造成轻微的性能损失。(默认:true)
终止连接
终止连接的方法有两种。调用end()方法可以正常地终止一个连接:
connection.end(function(err) {
// 连接终止
});
这种方法将确保给MySQL服务器发送COM_QUIT包之前所有队列中的查询都会被执行。如果在发送COM_QUIT包之前发生了致命错误,那么会给回调函数传递一个err参数,但是不管怎样连接都会关闭。
另外一种终止连接的方法是调用destroy()方法。该方法会立即终止底层套接字(underlying socket)。另外,destroy()不会触发更多的事件和回调函数。
根据他填的用户名到数据库去查。。
如果有记录。。就说明重复了。。不让他注册
我这有个的例子。。
try{
Class.forName("com.mysql.jdbc.Driver");
}
catch(ClassNotFoundException e) {}
//定义所要用到的三个数据库应用对象
Connection con=null; //连接对象
Statement sql=null; //Statement对象(SQL语句)
ResultSet rs=null; //结果集对象
//进行数据源的连接
try{
con=DriverManager.getConnection ("jdbc:mysql://localhost/scutcs","","");//连接数据库的url 用户名和密码
sql=con.createStatement();
String to="Select * From user1 Where username='"+username+"'";
rs=sql.executeQuery(to); //根据所定义的Statement执行生成相应的结果集并存在RS中
if(rs.next()) //判断结果集是否为空,如果不为空则表示有记录
{
out.print("scriptalert('用户名 "+xm+"已存在,请另选一个!');history.back();/script");//如果存在返回注册页面
}
else
}
catch (SQLException e)
{ out.print(e);
}
首先要明白一个概念 js是客户端加载的不可能让客户端直接连数据库,
如果连了就不安全啊,
所以需要服务端连接数据库,服务端js连数据库我只知道node.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.新建一个model.js 文件,
var mysql = require(‘mysql’);
var connection = mysql.createConnection({
host:'',
user:'root',
password:'123abc',
database:' nodejs',
port:6445
})
connection.connect();
这里的host为我们在腾讯云上开通的外地址,端口号也是在外网地址里面,注意要把外网地址写分开,用户为默认的管理员用户,密码为我们在云平台上设置的密码,数据库为我们创建的nodejs数据库。
接下来我们对数据库进行增删改查操作
/**
* 增加员工
*/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();
这样我们就可以愉快的操作数据库了
如果大家想把项目更模块化操作,可在model下面新建一个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);})