当前博客:关于mysql的2个问题一直无法理解

76 次浏览【转载需注明来源】

博客作者:【1888****8888】

个性签名:寒窗苦读十年,一朝凤舞九天

网页访问类.网页访问s(url + 前一分钟, (返回结果) => {
            局部变量 json数据 = JSON类.解析(返回结果["数据"]);
            如果 (json数据["Response"] == "Success") {
                如果 (json数据["Type"] == 100) {
                    局部变量 起始时间 = json数据["Data"]["TimeFrom"] + 32400;
                    局部变量 结束时间 = json数据["Data"]["TimeTo"] + 32400;
                    局部变量 K_time = json数据["Data"]["Data"][0]["time"] + 32400;
                    局部变量 K_high = json数据["Data"]["Data"][0]["high"];
                    局部变量 K_low = json数据["Data"]["Data"][0]["low"];
                    局部变量 K_open = json数据["Data"]["Data"][0]["open"];
                    局部变量 K_close = json数据["Data"]["Data"][0]["close"];
                    局部变量 update_sql;
                    局部变量 time1 = K_time + 60;
                    局部变量 time3 = K_time + 180;
                    局部变量 time5 = K_time + 300;
                    如果 (全局设置_LONG == 假 && 全局设置_SHORT == 假) {
                        录入数据库_BTC(起始时间, 结束时间, K_time, K_high, K_low, K_open, K_close).then((result) => {
                                如果 (result == 真) {
                                    update_sql = "UPDATE time_btc SET time1 = " + time1;
                                    返回 全表取条数();
                                }
                            }).then((result) => {
                                局部变量 三余数 = result % 3;
                                局部变量 五余数 = result % 5;
                                如果 (三余数 == 0) {
                                    update_sql = update_sql + " , time3 = " + time3;
                                }
                                如果 (五余数 == 0) {
                                    update_sql = update_sql + " , time5 = " + time5;
                                }
                                局部变量 时间结果 = 更新结算时间(update_sql);
                                时间结果.then((result) => {
                                    调试输出(result);
                                });
                            }).俘获异常((error) => {
                                console.error(error);
                            }).异常流程回调(() => {
                                返回;
                            });
                    }
Markup
异步 定义函数 录入数据库_BTC(参_起始时间, 参_结束时间, 参_K_time, 参_K_open, 参_K_high, 参_K_low, 参_K_close) {
    开始俘获异常 {
        局部变量 执行结果 = 同步 mysql客户端.执行SQL语句_同步("INSERT INTO market_btc (FROMTIME,TOTIME,TIME,OPEN,HIGH,LOW,CLOSE) VALUES(?, ?, ?, ?, ?, ?, ?);", [参_起始时间, 参_结束时间, 参_K_time, 参_K_open, 参_K_high, 参_K_low, 参_K_close]);
        如果 (执行结果["状态"] == "成功" && 执行结果["数据"] == 真) {
            返回 真;
        } 否则 {
            返回 假;
        }
        //局部变量 插入行的ID = 执行结果[0]["LAST_INSERT_ID()"];
    } 俘获异常 (error) {
        调试输出("异步录入出错", Error);
    }
}
异步 定义函数 全表取条数() {
    开始俘获异常 {
        局部变量 SQL = "SELECT COUNT(*) FROM market_btc";
        局部变量 总条数 = 同步 mysql客户端.查询SQL语句_同步(SQL);
        返回 总条数["数据"][0]["COUNT(*)"];
    } 俘获异常 (error) {
        调试输出("异步录入出错", Error);
    }
}
Markup

这里写入mysql 我要1到2秒以后才能读到 否则读不到

现在是用的启动时钟去写入的 我是每分钟的 0秒执行录入

我浏览器要写1秒去读  偶尔会读不到  然后我又补充一个倒计时2秒去读才可以 (不知道在启动时钟里面启动倒计时 是否有影响)

并且这个插入之前有个方法可以返回最后的ID 不知道怎么搞             现在是用的查询行数的方法来处理解决的

请前辈大神指点一下 哪里耽误了 效率   

我怀疑的地方网页访问S 命令没搞对 

数据库的时间和浏览器的时间都对过了以及写入服务器时间(都是局域网访问)   秒钟都是一样的 并且 写入写得是0秒  读取写得是1秒

困扰好几天实在想不通才来请教的

默认排序
Generic placeholder image
Generic placeholder image
快码FOF编程 Time: 2023-12-31 15:15:54

数据库操作插入一条数据不可能会这么长,网页访问看起来也没问题。

建议在数据库插入后立即使用全表取条数命令,看看输出的调试数据是否是多了一条;如果多了一条则证明数据库这里没有问题。

首先排除数据库的插入问题,当排除后就可以初步定位为是网页访问哪里的问题造成。

Generic placeholder image
1888****8888 回复 1楼 快码FOF编程 Time: 2023-12-31 15:37:42

网页访问部分是:

 变量 POST返回结果 = 网页访问_同步("http://8.217.0.199:8088/api_server.html", 真, JSON类.到可读JSON文本(time));
            变量 更新结果 = [];
            更新结果 = JSON类.解析(JSON类.到可读JSON文本(POST返回结果));
            如果 (更新结果["state"] != 未定义内容) {
                如果 (更新结果["state"] == 10053) {
                    倒计时执行(定义函数 () {
                        POST返回结果 = 网页访问_同步("http://8.217.0.101:8088/api_server.html", 真, JSON类.到可读JSON文本(time));
                        更新结果 = JSON类.解析(JSON类.到可读JSON文本(POST返回结果));
                        调试输出("补充数据");
                    }, 2000);
                }
                //关闭倒计时(倒计时ID)
                //如果需要中途停止倒计时,可接触上方的屏蔽代码
            }
Markup

 

这大概 几十分钟 一小时会遇到一次  还有就是启动时间里面启动倒计时 是否会有影响 我现在就是用的这个方法 上面代码的post访问是每分钟的第1秒执行

Generic placeholder image
快码FOF编程 回复 2楼 1888****8888 Time: 2023-12-31 16:02:28

是代码逻辑必须要这个倒计时执行么 可以考虑不使用倒计时执行

Generic placeholder image
1888****8888 回复 3楼 快码FOF编程 Time: 2023-12-31 16:25:58

用过循环判断,得到的效果和打CC攻击差不多

 我这个项目是画K线图 

每分钟到时间必须有数据让K线图绘画 

所以服务器那边是0秒通过一个API拿到数据 写到数据库 

然后 网页这边是1秒去获得数据  这个数据是不能为空的 为空会报错

我返回这个10053是说明没查到  要等一下再来查

Generic placeholder image
快码FOF编程 Time: 2024-03-12 16:20:40

重启一下IDE,新增了一个MYSQL的插入回调属性

里面有插入的行ID等

 

现在推荐使用这个方案获取插入行ID


关于mysql的2个问题一直无法理解