Thanks to visit codestin.com
Credit goes to github.com

Skip to content

怎样实现与MySQL原生客户端库libmysql相同的预编译相关接口(mysql_stmt_...)的功能 #1599

@SuKunlun

Description

@SuKunlun

看了下源码: 1、workflow中仅实现了COM_QUERY协议 2、libmysql中mysql_stmt_execute实现的源码,其底层发送的依次是下列请求: COM_STMT_PREPARE请求 预编译请求 COM_STMT_SEND_LONG_DATA请求 发送参数值给预编译语句,预编译中有几个就得发几个该请求,参数值按内容copy到数据包 COM_STMT_EXECUTE请求 执行预编译语句

所以我理解 Prepare Satement 不是建立在原始SQL语句上的功能,它有自己特定的请求协议,只是用原始的SQL语句也能实现。(不确定理解的对不对。。。。)

根据目前workflow提供的接口,好像也只能对参数值做下转义处理,然后拼接出SET语句执行,我还没有想到怎样封装能避免这种手动拼接SQL的方法。

要想实现libmysql预编译相关接口功能,可能还是需要在workflow底层实现COM_STMT_...相关的通信协议,并提供相应接口。。。。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions