libraries.zip 地址:链接:https://pan.baidu.com/s/1kIZ2aBCOFSJ9l727MxgIKQ 密码:40vq
* 说明一下,因为 lr 有很多库文件都没有,所以需要额外的从外部下载 公共库,并放到相应的位置。
* 下载完后,你会发现一共 9个文件,8个 .h 文件 1个 .dll 文件
* 将 .h文件 都放在 lr安装目录中的 include 文件夹中, .dll 放在 bin 目录中
*
*/
注意:花点时间把下载的 .h 文件快速的过一遍,下面我会对几个 用到的方法解释
lr_load_dll('dll文件名'); 加载动态库,这个很重要,可以防止 init 中 也可以放在 操作 Action中。
lr_abort(); 这个可以理解为退出。
mysql_init(); 创建一个
mysql 对象。毕竟是调用别人家的,不拿到人家的许可怎么弄用方法呢。
mysql_real_connection(); 数据库连接,你可以在Ptt_mysql.h 文件中查找该方法的原形,或者
百度
mysql_query(); sql 语句。
-- 如果是 查询语句使用率额mysql_query();就要使用 mysql_use_result() 和 mysql_fetch_row();
mysql_use_result(); 返回一个 结果集 ;
mysql_fetch_row(); 遍历结果集的每个row.
// #include "Ptt_MySql.h" // 如果调用了这个 .h 文件,下面有些 有些方法需要更换名称
#define MAX 100
Action()
{
char *server="127.0.0.1"; // 本地
unsigned int port = 3306; //端口号
char *username = "ndouser"; // 用户名
char *password = "ndopassword"; // 密码
char *db_name = "main"; //数据库名称
unsigned long client_flag = 0;
int db_connection; // databases connecion
int QueryData;
char **ResultRow;
// 连接数据库
//1、首先先把动态库文件导入,mysql 安装目录下的lib 文件中的libmysql.dll 加载进来。
int flags = lr_load_dll("libmysql.dll");
//rc = lr_load_dll("C:\\Program Files\\MySQL\\MySQL
Server 5.6\\lib\\libmysql.dll"); // 个人建议直接把 dll 放到 lr安装目录中,这样能减少很多麻烦的配置
// 当然你也可以不用这条判断语句,但是为了代码的安全性,加上不为错
if(flags !=0 )
{
// 如果 加载失败,输出信息,并退出当前程序。
lr_output_message("加载失败");
lr_abort();
}
// 2、开始链接数据库 mysql_real_connect() 这个函数来着与 mysql.h 这个头文件中,例子前做过解释
//a、创建mysql对象
db_connection = mysql_init(NULL);
if(db_connection == NULL)
{
lr_output_message("分配内存失败");
lr_abort();
}
flags = mysql_real_connect(db_connection,server,username,password,db_name,port,NULL,client_flag);
if(flags == NULL)
{
lr_output_message("连接数据库失败,错误信息:%s",mysql_error(db_connection));
mysql_close(db_connection);
lr_abort();
}
// 对数据库进行操作,增删改查。
// 增加 insert
lr_save_string ("INSERT INTO students VALUES(991105,'帮主',22,'man','HuNan')","paramInsertQuery");
flags = mysql_query(db_connection, lr_eval_string("{paramInsertQuery}"));
if (flags != 0) {
lr_error_message("paramInsertQuery 语句错误,错误信息:%s", mysql_error(db_connection));
//mysql_close(db_connection);
mysql_close(db_connection);
lr_abort();
}
// 删除 delete
lr_save_string ("delete from students where sname='帮主'","paramDeleteQuery");
flags = mysql_query(db_connection, lr_eval_string("{paramDeleteQuery}"));
if (flags != 0) {
lr_error_message("paramDeleteQuery 语句错误,错误信息:%s", mysql_error(db_connection));
//mysql_close(db_connection);
mysql_close(db_connection);
lr_abort();
}
// 改 alter/update 都可以修改,修改的类型不一样,这里就不详细说明了。
lr_save_string ("update students set sname='花农' where sname = '帮主'","paramUpdateQuery");
flags = mysql_query(db_connection, lr_eval_string("{paramUpdateQuery}"));
if (flags != 0) {
lr_error_message("paramUpdateQuery 语句错误,错误信息:%s", mysql_error(db_connection));
//mysql_close(db_connection);
mysql_close(db_connection);
lr_abort();
}
// 查 select
lr_save_string ("select * from students limit 1","paramSelectQuery");
flags = mysql_query(db_connection, lr_eval_string("{paramSelectQuery}"));
if (flags != 0) {
lr_error_message("paramSelectQuery 语句错误,错误信息:%s", mysql_error(db_connection));
//mysql_close(db_connection);
mysql_close(db_connection);
lr_abort();
}
QueryData = mysql_use_result(db_connection);
if (QueryData == NULL) {
lr_error_message("%s", mysql_error(db_connection));
mysql_free_result(QueryData);
mysql_close(db_connection);
lr_abort();
}
// 如果结果集包含多行数据,需要多次调用 mysql_fetch_row 直到返回NULL
ResultRow = (char **)mysql_fetch_row(QueryData);
if (ResultRow == NULL) {
lr_error_message("Did not expect the result set to be empty");
mysql_free_result(QueryData);
mysql_close(db_connection);
lr_abort();
}
//lr_output_message("%d",mysql_num_rows(ResultRow));
// 保存参数,用于删除这行数据
lr_save_string(ResultRow[0], "paramID");
lr_output_message("Order ID is: %s", lr_eval_string("{paramID}"));
mysql_free_result(QueryData);
//for(flags=0; ;flags++)
//{ }
mysql_close(db_connection);
}
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- MySQL数据库(增删改查语句)
MySQL数据库(增删改查语句)一.登录数据库:----> mysql -uroot -proot;(对应用户名和密码)二.SQL语句: 数据定义语言DDL 用来定义数据库.表.列,关 ...
- python操作mysql数据库增删改查的dbutils实例
python操作mysql数据库增删改查的dbutils实例 # 数据库配置文件 # cat gconf.py #encoding=utf-8 import json # json里面的字典不能用单引 ...
- Asp.Net操作MySql数据库增删改查
Asp.Net操作MySql数据库增删改查,话不多说直接步入正题.git源码地址:https://git.oschina.net/gxiaopan/NetMySql.git 1.安装MySQL数据库 ...
- Mysql 的 增删改查
mysql的增删改查 1:新建数据库 create database 数据库名 [其他选项]; 2:新建数据表 create table students ( id int unsigned not ...
- MySQL之增删改查之
MySQL之增删改查 前言:以下是MySQL最基本的增删改查语句,很多IT工作者都必须要会的命令,也是IT行业面试最常考的知识点,由于是入门级基础命令,所有所有操作都建立在单表上,未涉及多表操作. ...
- MySql之增删改查 · YbWork's Studio
前提:在进行"增删改查"的操作之前,先建立一个包含数据表student的数据库(具体操作可以见MySQL之最基本命令): 1."增"--添加数据 1.1 为表中 ...
- 使用MySQL练习增删改查时因为版本问题出现连接错误
使用MySQL练习增删改查时出现连接错误,错误提示如下: 2020-02-19 19:53:51.088 ERROR 16328 --- [reate-249798694] com.alibaba.d ...
- koa+mysql实现增删改查-全栈之路(001)
Date: 2020-4-23 以前很少写文章,从今天开始我要挑战一下自己,连续输出100篇技术类文章.这100篇文章我尽量以实战案例为主. 如果你觉得本文还不错,记得关注或者给个 star,你们的赞 ...
随机推荐
- Qt调用JS
转自: 一. 简介 Qt提供了本地C++对象与JavaScript的无缝集成,可以进行本地与web混合应用开发.利用Qt的Webkit集成与QtNetwork模块,可以自由的混合JavaScript. ...
- e2e 测试(1)
距离上一随笔,已经有一个月没有没写.到今天,刚刚好好,是学习e2e测试的一个月.今天有点时间可以总结一下这个月来的收获. 1.搭建e2e的测试环境 我是使用 Vue 构建项目,所以我也是通过Vue-c ...
- mac CodeIgniter和EasyWeChat 开发微信公众号
mac 安装 Composer //composer安装成功 curl -sS https://getcomposer.org/installer | php //将composer.phar移动到 ...
- hdu 2065 "红色病毒"问题(快速幂求模)
n=1 --> ans = 2 = 1*2 = 2^0(2^0+1) n=2 --> ans = 6 = 2*3 = 2^1(2^1+1) n=3 --> ans = 20 ...
- nyoj 0325 zb的生日(dp)
nyoj 0325 zb的生日 zb的生日 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 今天是阴历七月初五,acm队员zb的生日.zb正在和C小加.never在武汉集 ...
- [POJ3378]Crazy Thairs
Problem 给你一个数列,让你求由五个元素组成的顺序对的个数. Solution DP:用DP[i][j]表示把第j个作为五元组中第i个的方案数 则DP[i][j]=sum{DP[k][j-1]} ...
- websphere部署war包
通过websphere部署以及打包成war的web项目. (1)安装配置war包,部署项目 登录websphere,进入websphere主页(依次选中) Applications --> ...
- angular4-事件绑定
事件绑定语法(可以通过 (事件名) 的语法,实现事件绑定) <date-picker (dateChanged)="statement()"></date-pic ...
- Instruments leak黑魔法定位内存泄漏
leak是一款很赞的内存检查的工具,但在使用的过程中有点繁琐,至少有些底层的泄漏笔者还是不知道如何下手 下面介绍一下简单leak的使用: 首先你要确认你的target不会被拒绝,确保profile是d ...
- SWAP 简介
swap 交换分区,是存放在内存当中的临时数据(断电数据丢失) SWAP作用:当内存不足时会导致系统挂了,SWAP就是起到一个临时内存的作用,当内存不足时SWAP充当临时内存,防止系统挂掉