javascript 操作mysql数据库

news2024/12/25 12:58:35

目录

一:Javascript访问MYSQL

二:JavaScript中操作Mysql数据库实例


一:Javascript访问MYSQL

1、下载MYSQL的ODBC连接
2、在JS中建立ODBC连接如下:
var con = new ActiveXObject("ADODB.Connection"); 

con.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};OPTION=3;SERVER=127.0.0.1;User ID=root;Password=123456;Database=mysql;Port=3306";  
  

con.open; 

var rs = new ActiveXObject("ADODB.Recordset"); 

rs.open("select * from user", con); 

while (!rs.eof) { 

    var u = rs.Fields("User"); 

    document.write(u); 

    rs.moveNext; 

} 

rs.close(); 

rs = null; 
  

con.close(); 

con = null;

        需要注意连接字符串中Driver的名称与安装后的ODBC中的Drivers页中的MYSQL名称一致即可!

二:JavaScript中操作Mysql数据库实例

[js]  view plain  copy

//创建数据库连接对象  
var conn = new ActiveXObject("ADODB.Connection");  
//创建数据集对象  
var rs = new ActiveXObject("ADODB.Recordset");  
try{  
    //数据库连接串,具体配置请参考:http://www.connectionstrings.com/  
    //如果不知道如何配置连接串,可以通过配置UDL文件后用文本编辑器打开获得  
    var connectionstring = "Driver={MySQL ODBC 5.2w                         
    Driver};Server=localhost;Database=myDataBase;User=myUsername;     
    Password=myPassword;Option=3;Port=3306";  
    //打开连接  
    conn.open(connectionstring);  
   
    //查询语句  
    var sql = " select * from tb_col ";  
    //打开数据集(即执行查询语句)  
    rs.open(sql,conn);  
    // (或者rs=conn.execute(sql);)  
    //遍历所有记录  
    while(!rs.eof){  
    //WScript是Windows 的脚本宿主对象,详细情况请在windows帮助里查找。  
    //WScript.Echo输出记录的内容  
    "id") + "\t" + rs.Fields("name") + "\n");  
   
    //下一条记录  
     rs.moveNext();  
}  
//关闭记录集  
rs.close();  
    //关闭数据库连接  
    conn.close();  
} catch(e){  
    //异常报告  
    WScript.Echo(e.message);  
} finally{  
//  
}

        JavaScript DataBase Connector
        JSDBC:提供Javascript有效的连接数据库,目前支持MySQL、SQLite、ACCESS,后期会支持更多的数据库;
        在从事AJAX开发的工程师肯定会希望有一个通过AJAX直接连接数据库的组件,这样,可以省掉后台很多的操作步骤,比如免去了部署Java的运行环境,免去了写很多复杂的JDBC调用,不管出于调试的需要还是应用的需要,JSDBC都能够很好的集成到您的应用当中。

/**
  * 类说明:该脚本主要是实现与JSDBC for MySQL 连接,方便用户在js直接使用MySQL
  * 创建事件:2009-06-12
  */ //Include OCX Object
document.writeln(" <OBJECT  id='mysql' classid='clsid:9C579403-6745-4695-B14C-96212D319F18'");
document.writeln(" codebase='JSDBC_MySQL.ocx#Version=1,0,0,000'");
document.writeln(" WIDTH='0'   HEIGHT='0'>");
document.writeln(" </OBJECT>");
//error message
var lasterr = "";
//Exec Falg
var execFlag; /**
  * Connecte to mysql server 
  * provite:MySQL IP,PORT,DB Name,USER,Password,CharSet
  */
function connectMySQL() {
    execFlag = mysql.connecte("127.0.0.1", "3306", "testdb", "root", "123210", "GBK");
    if (execFlag == 1)
        return 1;
    else {
        lasterr = mysql.getLastError();
        return 0;
    }
} /**
  * Close already open Connection
  */
function closeMySQL() {
    execFlag = mysql.close();
    if (execFlag == 1)
        return 1;
    else {
        lasterr = mysql.getLastError();
        return 0;
    }
} /**
  * Exec Insert Into SQL statement
  * @param {Object} sql
  */
function insertMySQL(sql) {
    execFlag = mysql.insertData(sql);
    if (execFlag == 1)
        return 1;
    else {
        lasterr = mysql.getLastError();
        return 0;
    }
} /**
  * Exec DataBase Manager Language
  * @param {Object} sql
  */
function execDMLMySQL(sql) {
    execFlag = mysql.execDML(sql);
    if (execFlag == 1)
        return 0;
    else {
        lasterr = mysql.getLastError();
        return 0;
    }
} /**
  * Exec Select Data From DataBase
  * @param {Object} sql
  * @param {Object} cnum == Number of fields in SQL statement
  */
function selectMySQL(sql, cnum) {
    var rs = mysql.selectData(sql, cnum);
    if (rs.length > 0) {
        var array = new Array();
        var DataSet = new Array();
        var rowsplit = '';//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的,使用时拷贝过去即可
        var fieldsplit = '';//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的,使用时拷贝过去即可

        array = rs.split(rowsplit);
        for (var i = 0; i < array.length; i++) {
            var DataRow = array[i].split(fieldsplit);
            DataSet[i] = DataRow;
        }
        return DataSet;
    }
    else {
        lasterr = mysql.getLastError();
        return null;
    }
}
/**
 * Exec Delete SQL statement
 * @param {Object} sql
 */
function deleteMySQL(sql) {
    execFlag = mysql.deleteData(sql);
    if (execFlag == 1)
        return 1;
    else {
        lasterr = mysql.getLastError();
        return 0;
    }
} /**
  * Exec Update SQL statement
  * @param {Object} sql
  */
function updateMySQL(sql) {
    execFlag = mysql.updateData(sql);
    if (execFlag == 1)
        return 1;
    else {
        lasterr = mysql.getLastError();
        return 0;
    }
}
/**
 * Exec Call Produce
 * @param {Object} proname == Produce Name
 * @param {Object} inparas == Produce IN Parameters
 * @param {Object} outparas == Produce OUT Parameters
 * @param {Object} cnum == Number of fields in OUT Parameters
 */
function callProduceMySQL(proname, inparas, outparas, cnum) {
    var rs = mysql.execProduce(proname, inparas, outparas, cnum);
    if (rs.length == 0) {
        lasterr = mysql.getLastError();
        return null;
    }
    else {
        var array = new Array();
        var DataSet = new Array();

        var rowsplit = '';//行间隔 ,注意,这并不是普通的'-',而是0x06 转换而来的
        var fieldsplit = '';//字段间隔,注意,这并不是普通的'|',而是0x05 转换而来的
        array = rs.split(rowsplit);
        var DataRow = new Array();
        for (var i = 0; i < array.length; i++) {
            var fieldarray = array[i].split(fieldsplit);
            DataSet[i] = fieldarray;
        }
        return DataSet;
    }
} /**
  * Exec Transcation
  * @param {Object} sql
  */
function execTranscationMySQL(sql) {
    execFlag = mysql.execTranscation(sql);
    if (execFlag == 1)
        return 1;
    else {
        lasterr = mysql.getLastError();
        return 0;
    }
} /**
  * Get Last Error Message if exec error from js
  */
function getLastErrorMySQL() {
    return lasterr;
}
/**
 * Get Last Error Message if exec error from ocx
 */
function getLastErrorFromMySQL() {
    var lasterrmysql = mysql.getLastError();
    return lasterrmysql;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1194133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux软件包(源码包和二进制包)

Linux下的软件包众多&#xff0c;且几乎都是经 GPL 授权、免费开源&#xff08;无偿公开源代码&#xff09;的。这意味着如果你具备修改软件源代码的能力&#xff0c;只要你愿意&#xff0c;可以随意修改。 GPL&#xff0c;全称 General Public License&#xff0c;中文名称“通…

jbase代码生成器(成型篇)

上一篇说到通用码表可以解决百分之八十的基础维护功能&#xff0c;剩下的百分二十的需要级联维护的界面可以用代码生成器生成代码&#xff0c;基于生成的代码拷贝再组装界面&#xff0c;来解决这百分之二十的工作量里的百分之八十工作量。 首先实现代码生成器 Class Jbase.Ma…

C语言实现给出一位数不大于7位的整型数字,取整数从右端开始的4~7位数字

完整代码&#xff1a; // 给出一位数不大于7位的整型数字&#xff0c;取整数从右端开始的4&#xff5e;7位数字 //就是一个数为abcdefg&#xff0c;取它从右端开始的4&#xff5e;7位数字&#xff0c;就为dcba //如果位数不足7位时&#xff0c;会在数字高位补0 //例如一个数为…

leetcode 62

leetcode 62 题目 解题思路 class Solution { public:int uniquePaths(int m, int n) {vector<vector<int>> f(m, vector<int>(n));for(int i0; i<m; i){f[i][0] 1;}for(int j0; j<n; j){f[0][j] 1;}for(int i1; i<m; i){for(int j1; j<n; j){…

如何记录血压的波动情况

import pandas as pd from plotnine import * import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] [Microsoft YaHei] 记录时间(time)、收缩压(SBP)、舒张压(DBP)&#xff1a; df pd.DataFrame({ time: [2023-11-01 08:30, 2023-11-02 21:00, 2023-11-0…

【星海随笔】SDN neutron (一)

一、SDN的原理&#xff1a; 控制平面与数据平面分离&#xff1a;传统网络中&#xff0c;网络设备同时承担控制和数据转发功能&#xff0c;而SDN将这两个功能分离&#xff0c;使得网络控制集中在一个中心控制器上。 中心控制器&#xff1a;SDN架构中的中心控制器负责网络的全局…

【小黑送书—第五期】>>《MATLAB科学计算从入门到精通》

从代码到函数&#xff0c;从算法到实战&#xff0c;从问题到应用&#xff0c;由浅入深掌握科学计算方法&#xff0c;高效解决实际问题。 从代码到函数&#xff0c;掌握多种经典算法 跨越多个领域&#xff0c;精通各类科学计算 多种应用实例&#xff0c;高效解决实际问题 今天给…

【数据结构】Lambda

⭐ 作者&#xff1a;小胡_不糊涂 &#x1f331; 作者主页&#xff1a;小胡_不糊涂的个人主页 &#x1f4c0; 收录专栏&#xff1a;浅谈数据结构 &#x1f496; 持续更文&#xff0c;关注博主少走弯路&#xff0c;谢谢大家支持 &#x1f496; Lambda表达式 1. 背景1.1 语法1.2 函…

零基础必知的Python简介!

文章目录 前言1.Python 简介2.Python 发展历史3.Python 特点3.为什么是Python而不是其他语言&#xff1f;4.Python的种类总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python…

sqli-bypass wp

sqli-bypass靶场 level 1 尝试注入点 1 ,1&#xff0c;1,1",1"" 》存在字符型单引号注入 id1and(1)-- >提示存在sql注入 bypass and、()、--都可能存在被屏蔽掉 尝试#代替-- id1and(1)%23 》 正常回显&#xff0c;说明–被屏蔽了&#xff0c;and&#xf…

相机标定:张正友标定原理

本文来自公众号“AI大道理” —————— 计算机视觉的源头是相机&#xff0c;因此我们有必要对相机有所了解。 原始相机拍摄的图像一般都会有所畸变&#xff0c;导致画面和实际观测的有所排查&#xff0c;为了让相机拍摄的图像和肉眼观察的一致&#xff0c;就需要进行相机标…

双网卡多网卡时win11如何设置网卡优先级

背景&#xff1a; 电脑需要同时使用多个网卡&#xff0c;一个用于被远程、另一个用于打开网页。 电脑打开网页时&#xff0c;走的是哪个网卡&#xff0c;是根据网卡优先级来的。 打开控制面板、网络和Internet、网络和共享中心 点击左侧 更改适配器设置。我这里可见两个网卡…

C语言—统计从键盘输入的一行英文句子的字符个数

流程图 代码 #include <stdio.h>int main() {int count0;printf("请输入英文字符&#xff0c;回车确认&#xff1a;");while (getchar()!\n){count count 1;}printf("共输入%d个字符\n", count);system("pause");return 0; }请输入英文字…

Git的安装,简介以及常用命令【超详细】

目录 一. Git简介 分布式特点 优缺点 Git 与 SVN 区别 二. Git安装 三. Git常用命令 四. Git的文件状态 1.文件状态 2.工作区域 一. Git简介 Git 是一个开源的分布式版本控制系统&#xff0c;可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds…

粘性定位-最下面怎么出现留白

问题&#xff1a;出现了留白 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title…

网格变形算法

网格变形 需求分析技术分析 需求分析 根据几何模型上的几个特征点&#xff0c;对几何模型进行变形。比如 技术分析 把几何模型使用三角面片表示&#xff0c;然后通过网格映射变形进行实现。关于网格这块有本经典的书可以参考&#xff0c;《ploygon mesh processing》。上面…

海外跨境电商商城源码,开启多语言多货币多商家入驻的电商新时代!

尊敬的CSDN用户们&#xff0c;你们好!我们很高兴地向您介绍一款引领未来电商潮流的全新产品——海外跨境电商商城源码!这款源码将为您打开多语言、多货币、多商家入驻的电商新时代&#xff0c;让您轻松打造出属于自己的跨境电商平台! 一、多语言支持&#xff0c;轻松拓展全球市…

创建一个小表表空间A。一个大表表空间B.并创建一个用户B1默认表空间为B。

目录 ​编辑 1、创建小表表空间 A 2、创建大表表空间 B 3、创建用户 B1 并将其默认表空间设置为 B 4、授权给用户 B1 的权限 1、创建小表表空间 A CREATE TABLESPACE A DATAFILE /u01/app/oracle/oradata/orcl/datafile_A.dbf SIZE 10M; 2、创建大表表空间 B 这个时间会略…

数据库-MySQL之数据库必知必会1-9章

检索数据 1.检索不重复的行 从 Customers 表中检索所有的 ID select DISTINCT cust_id from Customers;DISTINCT表示去掉重复的行 2.限制结果-分页 SELECT语句返回所有匹配的行&#xff0c;它们可能是指定表中的每个行。为了返回第一行或前几行&#xff0c;可使用LIMIT子句。…

CSRF(跨站请求伪造)攻击演示

目录 CSRF(跨站请求伪造)攻击演示CSRF 是什么CSRF 演示项目代码CSRF 演示过程服务启动演示 CSRF(跨站请求伪造)攻击演示 CSRF 是什么 CSRF&#xff08;Cross-Site Request Forgery&#xff09;跨站请求伪造&#xff0c;是一种网络安全攻击&#xff0c;其目标是利用被攻击者在…