RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

全部问题

Martin Hope
Edmindo
Asked: 2024-08-15 07:27:38 +0000 UTC

如何在异步模式下正确使用psql数据库 |电报机器人 |爱图

  • 8

我开始使用 psql 数据库开发 tg 机器人,出现了一个问题:

如何在异步模式下正确使用psql数据库,从而不做大量昂贵的操作并合理使用资源。

大家好

我最近开始在aiogram 3中编写一个电报机器人。需要使用psql数据库。首先,我决定弄清楚如何在同步模式下工作,这里一切看起来都很简单 - 我们在起点创建一个永久连接,并为每个请求创建一个游标,在请求结束时关闭它。

在编写测试处理程序后,我决定尝试让机器人通过此处理程序,在短时间内通过对处理程序的 7-8 次调用以及对数据库的请求成功完成了这一任务。好吧,我并没有指望异步机器人中有同步解决方案。我开始研究异步模式工作的问题,然后问题出现了:

如何在异步模式下正确使用psql数据库,从而不做大量昂贵的操作并合理使用资源。

我阅读了在互联网上找到的一些资源、文档,并询问了 GPT。在整个示例中,为每个请求创建一个单独的连接。看来这并不是很理性。

我在一个处理程序中的典型情况是从消息中获取用户 ID,使用该 id 查询数据库并从表中提取具有该 id 的记录。大约有 10-12 个这样的处理程序。

我很高兴看到代码示例

postgresql
  • 1 个回答
  • 69 Views
Martin Hope
Jerzy Matusewizc
Asked: 2024-08-15 06:30:51 +0000 UTC

树莓派操作系统桌面和GRUB。请告诉我出了什么问题

  • 5

我将树莓派操作系统下载到空的 SSD 上。尝试启动后,我进入了 GRUB 控制台。告诉我出了什么问题以及如何解决问题。

linux
  • 1 个回答
  • 35 Views
Martin Hope
ch j9
Asked: 2024-08-15 04:51:01 +0000 UTC

如何创建相同的div?

  • 5

function openmodal() {
    document.getElementById("modalopenbackblc").classList.add("open")
}

let openModalbtn0 = document.querySelector("#openModalbtn0")

openModalbtn0.addEventListener("click", openmodal)

document.getElementById("closemodal").addEventListener("click", function() {
    document.getElementById("modalopenbackblc").classList.remove("open")
});
.container1{
        position: absolute;
        display: block;
        top: 0%;
        left: 0%;
        width: 100%;
        height: 205vh;
        background-color: darkblue;
    }


    .midblc{
        position: relative;
        display: block;
        top: 4%;
        left: 0%;
        width: 90%;
        height: 80vh;
        margin: auto;
        margin-bottom: 4%;
        background-color: darkcyan;
    }

    .touchsquaerblc{
        position: relative;
        display: inline-block;
        top: 2%;
        left: 2%;
        width: 20%;
        height: 35vh;
        margin-left: 3%;
        margin-bottom: 3%;
        border-radius: 1vh;
        overflow: hidden;
        cursor: pointer;
        background-color: cornflowerblue;
    }

    .touchsquaerblc:hover{
        transform: scale(1.05);
        transition: 0.5s;
    }

    .touchsquaerblc:not(hover){
        transform: scale(1);
        transition: 0.5s;
    }

    .squaernametxtblc{
        position: absolute;
        display: block;
        bottom: 0%;
        left: 0%;
        width: 100%;
        height: 5vh;
        vertical-align: top;
        background-color: darkgoldenrod;
    }

    .nametagtxtblc{
        position: relative;
        display: block;
        top: 2%;
        left: 0%;
        width: 100%;
        height: 6vh;
        margin: auto;
        background-color: darkorange;
    }




    .modalbackblc{
        position: fixed;
        display: block;
        top: 0%;
        left: 0%;
        width: 100%;
        height: 100%;
        z-index: 999;
        visibility: hidden;
        opacity: 0;
        transition: opacity .4s, visibility .4s;
        background-color: rgba(27, 27, 27,0.7);
    }

    .modalbackblc.open{
        visibility: visible;
        opacity: 1;
    }

    .modalfrontblc{
        position: sticky;
        display: flex;
        top: 5%;
        left: 0%;
        width: 70%;
        height: 90%;
        border-radius: 2vh;
        transition: transform .3s;
        transform: scale(0.3);
        margin: auto;
        overflow: hidden;
        background-color: #ffffff;
    }

    .modalbackblc.open .modalfrontblc{
        transform: scale(1);
    }

    .modalnametagblc{
        position: absolute;
        display: flex;
        top: 0%;
        left: 0%;
        width: 98.5%;
        height: 6vh;
        background-color: darkcyan;
    }

    .modalclosebtnblc{
        position: absolute;
        display: flex;
        top: 0%;
        right: 0%;
        width: 1.5%;
        height: 100%;
        cursor: pointer;
        background-color: darkred;
    }

    .modaltableservicesblc{
        position: relative;
        display: flexbox;
        top: 7%;
        left: 0%;
        width: 98.5%;
        height: 100%;
        background-color: darkorange;
    }

    .modaltableservices{
        position: relative;
        display: block;
        top: 0%;
        left: 0%;
        width: 100%;
        height: 8%;
        margin-bottom: 0.3%;
        background-color: darkorchid;
    }
<div class="container1">


        <div class="midblc">

            <div id="openModalbtn0" class="touchsquaerblc">
                <div class="squaernametxtblc"></div>
            </div>

        </div>

    </div>

    <div id="modalopenbackblc" class="modalbackblc">

        <div class="modalfrontblc">

            <div class="modalnametagblc"></div>

            <div id="closemodal" class="modalclosebtnblc"></div>

            <div class="modaltableservicesblc">

            </div>

    </div>

大家好!拖了这么久才写,但我已经放弃了:(

我不知道如何制作相同的卡片,唯一可以区分它们的是打开的模式窗口中的名称和内容。

我画了一个快速草图,结果我有一个卡片容器和一张必要的卡片(您需要从中制作有条件的 4 张卡片),当您单击它时,会打开一个包含信息的模式窗口。

我读了很多文章,观看了视频等,几乎所有地方他们都只是手动添加 20 张卡片,我不太喜欢。

所以我想用js来添加它们,但是我不太擅长js。

html代码

<div class="container1">


    <div class="midblc">

        <div id="openModalbtn0" class="touchsquaerblc">
            <div class="squaernametxtblc"></div>
        </div>

    </div>

</div>

<div id="modalopenbackblc" class="modalbackblc">

    <div class="modalfrontblc">

        <div class="modalnametagblc"></div>

        <div id="closemodal" class="modalclosebtnblc"></div>

        <div class="modaltableservicesblc">

        </div>

</div>

CSS代码

.container1{
    position: absolute;
    display: block;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 205vh;
    background-color: darkblue;
}


.midblc{
    position: relative;
    display: block;
    top: 4%;
    left: 0%;
    width: 90%;
    height: 80vh;
    margin: auto;
    margin-bottom: 4%;
    background-color: darkcyan;
}

.touchsquaerblc{
    position: relative;
    display: inline-block;
    top: 2%;
    left: 2%;
    width: 20%;
    height: 35vh;
    margin-left: 3%;
    margin-bottom: 3%;
    border-radius: 1vh;
    overflow: hidden;
    cursor: pointer;
    background-color: cornflowerblue;
}

.touchsquaerblc:hover{
    transform: scale(1.05);
    transition: 0.5s;
}

.touchsquaerblc:not(hover){
    transform: scale(1);
    transition: 0.5s;
}

.squaernametxtblc{
    position: absolute;
    display: block;
    bottom: 0%;
    left: 0%;
    width: 100%;
    height: 5vh;
    vertical-align: top;
    background-color: darkgoldenrod;
}

.nametagtxtblc{
    position: relative;
    display: block;
    top: 2%;
    left: 0%;
    width: 100%;
    height: 6vh;
    margin: auto;
    background-color: darkorange;
}




.modalbackblc{
    position: fixed;
    display: block;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 100%;
    z-index: 999;
    visibility: hidden;
    opacity: 0;
    transition: opacity .4s, visibility .4s;
    background-color: rgba(27, 27, 27,0.7);
}

.modalbackblc.open{
    visibility: visible;
    opacity: 1;
}

.modalfrontblc{
    position: sticky;
    display: flex;
    top: 5%;
    left: 0%;
    width: 70%;
    height: 90%;
    border-radius: 2vh;
    transition: transform .3s;
    transform: scale(0.3);
    margin: auto;
    overflow: hidden;
    background-color: #ffffff;
}

.modalbackblc.open .modalfrontblc{
    transform: scale(1);
}

.modalnametagblc{
    position: absolute;
    display: flex;
    top: 0%;
    left: 0%;
    width: 98.5%;
    height: 6vh;
    background-color: darkcyan;
}

.modalclosebtnblc{
    position: absolute;
    display: flex;
    top: 0%;
    right: 0%;
    width: 1.5%;
    height: 100%;
    cursor: pointer;
    background-color: darkred;
}

.modaltableservicesblc{
    position: relative;
    display: flexbox;
    top: 7%;
    left: 0%;
    width: 98.5%;
    height: 100%;
    background-color: darkorange;
}

.modaltableservices{
    position: relative;
    display: block;
    top: 0%;
    left: 0%;
    width: 100%;
    height: 8%;
    margin-bottom: 0.3%;
    background-color: darkorchid;
}

js代码

        function openmodal() {
        document.getElementById("modalopenbackblc").classList.add("open")
    }
    
    let openModalbtn0 = document.querySelector("#openModalbtn0")
    
    openModalbtn0.addEventListener("click", openmodal)
    
    document.getElementById("closemodal").addEventListener("click", function() {
        document.getElementById("modalopenbackblc").classList.remove("open")
    });

在此输入图像描述

javascript
  • 1 个回答
  • 65 Views
Martin Hope
user26618990
Asked: 2024-08-15 02:24:42 +0000 UTC

使用pandas根据模板自动生成文档

  • 6

当前代码仅生成一个输出文件,并且仅更改[证据]。我无法确定问题是什么。 Excel 文件中的所有列都有一个名称,所有键都对应一个代码。

excel_file = 'Book1.xlsx'
column_names = [
    'ФИО_должника', 'адрес', 'дата_рождения', 'паспорт', 'задолженность',
    'пошлина', 'период_задолженности', 'населённый_пункт', 'улица',
    'дом', 'квартира', 'кадастровый_номер', 'свидетельство'
]
df = pd.read_excel(excel_file, names=column_names, header=None)

print(df.columns)


template_path = 'Заявление.docx'
output_folder = 'output_docs'
os.makedirs(output_folder, exist_ok=True)

def create_document(row):
    doc = Document(template_path)
    output_path = os.path.join(output_folder, f"Заявление_{row['ФИО_должника']}.docx")

    for paragraph in doc.paragraphs:
        if '[ФИО_должника]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[ФИО_должника]', str(row['ФИО_должника']))
        if '[место_жительства]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[место_жительства]', str(row['место_жительства']))
        if '[дата_и_место_рождения]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[дата_и_место рождения]', str(row['дата_и_место_рождения']))
        if '[данные_паспорта]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[данные_паспорта]', str(row['паспорт']))
        if '[размер_задолженности]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[размер_задолженности]', str(row['задолженность']))
        if '[пошлина]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[пошлина]', str(row['пошлина']))
        if '[период_задолженности]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[период_задолженности]', str(row['период_задолженности']))
        if '[населённый_пункт]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[населённый_пункт]', str(row['населённый_пункт']))
        if '[улица]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[улица]', str(row['улица']))
        if '[дом]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[дом]', str(row['дом']))
        if '[квартира]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[квартира]', str(row['квартира']))
        if '[кадастровый_номер]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[кадастровый_номер]', str(row['кадастровый_номер']))
        if '[свидетельство]' in paragraph.text:
            paragraph.text = paragraph.text.replace('[свидетельство]', str(row['свидетельство']))

    doc.save(output_path)

for index, row in df.iterrows():
    try:
        create_document(row)
        print(f"Документ для {row['ФИО_должника']} успешно создан.")
    except Exception as e:
        print(f"Ошибка при создании документа для {row['ФИО_должника']}: {e}")

print("Документы успешно созданы и сохранены в папку 'output_docs'.")

Excel 中的数据格式:列名称 [债务人全名] [地址] [债务金额] 更多数据

这就是应用程序模板的样子

在此输入图像描述

我尝试重命名Excel中的列名,更改程序中的外循环,但没有任何效果

python
  • 1 个回答
  • 54 Views
Martin Hope
LegoManchik
Asked: 2024-08-15 01:55:06 +0000 UTC

ServerPlayer.openMenu() 不接受“pos”参数

  • 4

在我的 mod 中,我想制作一个 BlockEntity,单击时会打开一个菜单,但目前我收到错误。 ServerPlayer.openMenu() 不接受 pоs 参数。但如果没有它,菜单根本打不开(我附加的是 2 号控制台。)

1.

@Override
    public @NotNull InteractionResult use(@NotNull BlockState state, @NotNull Level level, @NotNull BlockPos pos, @NotNull Player player, @NotNull InteractionHand hand, @NotNull BlockHitResult hitResult) {
        BlockEntity be = level.getBlockEntity(pos);
        if (!(be instanceof BrewBarrelEntity blockEntity))
            return InteractionResult.PASS;

        if (level.isClientSide())
            return InteractionResult.SUCCESS;

        // open screen
        if(player instanceof ServerPlayer sPlayer) {
            sPlayer.openMenu(blockEntity, pos);
        }

        return InteractionResult.CONSUME;
    }
[20:48:18] [Render thread/ERROR] [minecraft/BlockableEventLoop]: Error executing task on Client
java.lang.NullPointerException: Cannot invoke "net.minecraft.network.FriendlyByteBuf.readBlockPos()" because "additionalData" is null
    at com.legomanchik.slavic_delight.menu.BrewBarrelMenu.<init>(BrewBarrelMenu.java:24) ~[main/:?] {re:classloading}
    at net.minecraftforge.network.IContainerFactory.create(IContainerFactory.java:20) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading}
    at net.minecraft.world.inventory.MenuType.create(MenuType.java:55) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.client.gui.screens.MenuScreens$ScreenConstructor.fromPacket(MenuScreens.java:115) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.gui.screens.MenuScreens.lambda$create$0(MenuScreens.java:43) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at java.util.Optional.ifPresent(Optional.java:178) ~[?:?] {}
    at net.minecraft.client.gui.screens.MenuScreens.create(MenuScreens.java:43) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.multiplayer.ClientPacketListener.handleOpenScreen(ClientPacketListener.java:1118) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.network.protocol.game.ClientboundOpenScreenPacket.handle(ClientboundOpenScreenPacket.java:34) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading}
    at net.minecraft.network.protocol.game.ClientboundOpenScreenPacket.handle(ClientboundOpenScreenPacket.java:10) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading}
    at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$0(PacketUtils.java:22) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading}
    at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:143) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:22) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading}
    at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:116) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.util.thread.BlockableEventLoop.runAllTasks(BlockableEventLoop.java:104) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B}
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1106) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.Minecraft.run(Minecraft.java:718) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
    at net.minecraft.client.main.Main.main(Main.java:218) ~[forge-1.20.1-47.3.0_mapped_official_1.20.1-recomp.jar:?] {re:classloading,pl:runtimedistcleaner:A}
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}
    at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}
    at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:111) ~[fmlloader-1.20.1-47.3.0.jar:?] {}
    at net.minecraftforge.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:99) ~[fmlloader-1.20.1-47.3.0.jar:?] {}
    at net.minecraftforge.fml.loading.targets.ForgeClientUserdevLaunchHandler.devService(ForgeClientUserdevLaunchHandler.java:19) ~[fmlloader-1.20.1-47.3.0.jar:?] {}
    at net.minecraftforge.fml.loading.targets.CommonDevLaunchHandler.lambda$makeService$7(CommonDevLaunchHandler.java:135) ~[fmlloader-1.20.1-47.3.0.jar:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.modlauncher.Launcher.run(Launcher.java:108) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.modlauncher.Launcher.main(Launcher.java:78) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) ~[modlauncher-10.0.9.jar:?] {}
    at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:141) ~[bootstraplauncher-1.1.2.jar:?] {}

如果你仍然指定“pos”参数,游戏根本不会启动,并会给出以下错误

C:\Users\Lesha\Downloads\Slavic delight\src\main\java\com\legomanchik\slavic_delight\block\custom\BrewBarrelBlock.java:89: error: method openMenu in class ServerPlayer cannot be applied to given types;
            sPlayer.openMenu(blockEntity, pos);
                   ^
  required: MenuProvider
  found:    BrewBarrelEntity,@org.jetbrains.annotations.NotNull BlockPos
  reason: actual and formal argument lists differ in length
java
  • 1 个回答
  • 20 Views
上一页
下一页

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5