jjzjj

MySQL C API 处理文本字段

coder 2023-10-11 原文

当使用 MySQL C API 中的 Prepared Statements 处理 TEXT 字段结果时,必须为 out 绑定(bind)指定字符串的长度:

 MYSQL_BIND    out_bind;
 char          str_data[STRING_SIZE]; 
 my_bool       is_null;
 my_bool       error;

 ....
 /* STRING COLUMN */
 out_bind.buffer_type = MYSQL_TYPE_STRING;
 out_bind.buffer = str_data;
 out_bind.buffer_length = STRING_SIZE;
 out_bind.is_null= &is_null;
 out_bind.length= &length;
 out_bind.error= &error;

 mysql_stmt_bind_result(statement, out_bind)

在给定的示例中,STRING_SIZE 是已知常量,但是如何处理数据长度从小到兆字节不等的 TEXT 字段?

有这方面的标准方法吗?

最佳答案

manual page for mysql_stmt_fetch说:

In some cases you might want to determine the length of a column value before fetching it with mysql_stmt_fetch(). ... To accomplish this, you can use these strategies:

  • Before invoking mysql_stmt_fetch() to retrieve individual rows, pass STMT_ATTR_UPDATE_MAX_LENGTH to mysql_stmt_attr_set(), then invoke mysql_stmt_store_result() to buffer the entire result on the client side. Setting the STMT_ATTR_UPDATE_MAX_LENGTH attribute causes the maximal length of column values to be indicated by the max_length member of the result set metadata returned by mysql_stmt_result_metadata().

  • Invoke mysql_stmt_fetch() with a zero-length buffer for the column in question and a pointer in which the real length can be stored. Then use the real length with mysql_stmt_fetch_column().

您可能还想阅读 manual page for mysql_stmt_bind_result

关于MySQL C API 处理文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6615204/

有关MySQL C API 处理文本字段的更多相关文章

  1. ruby-on-rails - Rails_Admin - 如何更改 Post View 中文本字段的大小 - 2

    RailsAdmin中Post的“正文”输入区域的默认高度非常小。我想弄清楚如何增加高度。有什么建议么?config.modelPostdolabel'Blog'weight0editdofield:userfield:titlefield:body_formatfield:bodydo(somethinghere?)end 最佳答案 configure:descriptiondohtml_attributesrows:20,cols:50end 关于ruby-on-rails-Rail

  2. javascript - RxJs 如何处理文档事件 - 2

    开始使用RxJs。找不到解决此问题的方法。我有一个可拖动的控件:startDrag=rx.Observable.fromEvent(myElem,'mousedown')现在,因为控件太小mousemove和mouseup事件应该在文档级别(否则它不会停止拖动,除非光标正好在元素上)endDrag=rx.Observable.fromEventdocument,'mouseup'position=startDrag.flatMap->rx.Observable.fromEventdocument,'mousemove'.map(x)->x.clientX.takeUntilendDra

  3. c# - 读取xml文件时如何处理文件结尾 - 2

    所以我正在读取一个长度未知的xml文件,并将每个元素读入一个列表结构中。现在,一旦我读到文件的末尾,我就会继续阅读,这会导致异常。现在我只是捕捉到这个异常并继续我的生活,但是有没有更简洁的方法来做到这一点?try{while(!textReader.EOF){//UsedtostoreinfofromeachcommandastheyarereadfromthexmlfileATAPassThroughCommandscommand=newATAPassThroughCommands();//thefollowingisjustcommandsbeingreadandtheircont

  4. c# - 程序如何处理文件 "opened with..."呢? - 2

    我想知道是否有人可以指出正确的方向。例如,您知道在大多数IDE中,如果您使用“打开方式”打开源文件,它会运行程序并将其打开吗?然后如果您打开另一个,它会在同一进程中的新选项卡中打开它吗?我的问题不是如何将程序添加到shell命令,而是:例如,C#应用程序如何“接收”PDF文件?当另一个文件与它一起运行时,应用程序如何在同一进程中打开该文件(不必程序实例)? 最佳答案 当第二个程序实例启动时,在加载任何界面组件之前,它检查是否有另一个程序实例正在运行。如果是这样,它会以某种方式与其通信(特定于程序:这可以是套接字、进程间中断、共享内存

  5. javascript - 如何检查按键上文本字段的新值? - 2

    我有一个表单域,我需要能够检测该域何时更改并使用该域的新值执行一些额外的代码。如果按下的键实际上改变了文本框的值,我只想执行代码。这是我想出的解决方案。functiononkeypress(e){varvalue=this.value;//dosomethingwith}functiononkeyup(e){if(e.which==8||e.keyCode==46){//deleteorbackspacekeysthis.onkeypress(e);}}不过只有一个问题。onkeypress在更新字段值之前被触发,所以当我获取该值时,我得到的是以前的值。如果我知道一种方法来测试键是否更

  6. javascript - 仅一行文本字段的代码镜像? - 2

    我有一个单行文本框。(输入类型='文本')我没有文本区域。此文本字段允许用户在简单的DSL中输入小字符串。为了让您了解它们看起来像这样:从米兰到伦敦从意大利(罗马,佛罗伦萨)到英国我想用codemirror替换这个文本字段我的问题是:对一行文本区域使用代码镜像是个好主意吗?有人做过吗?是否有任何其他方法可以使文本字段更加“丰富多彩”?谢谢, 最佳答案 好吧,有一种方法可以使用CodeMirror的丰富功能来制作单行编辑器。首先,您必须添加一个功能齐全的CodeMirror对象(使用文本区域)。假设您有varcm=CodeMirror

  7. javascript - 在输入文本字段中设置光标位置 - 2

    经过大量搜索,我发现了以下主题:definecursorpositioninforminputfieldjQuerySetCursorPositioninTextArea不幸的是,在所有帖子中都没有给出完整的表单嵌入代码或真实示例。现在我只是不知道如何将nemisj的代码(在第一个链接上)或Mark的代码(在第二个链接上)包含到我的表单中:$(document).ready(function(){$("#site").focus(function(){if(this.value==this.defaultValue){$(this).val("http://");}});});我想知道

  8. php - 在提交到 MySQL 数据库之前清理文本输入 - 2

    我目前正在努力确保为我正在处理的Web应用程序提交到数据库中的文本在提交到数据库之前经过适当的清理,然后正确检索和显示。忽略当前正在使用的清理功能的困惑(目前是一团糟并且破坏了东西),这就是我打算做的:使用CKEditor进行文本输入。它会自动将HTML标签/符号转换为它们的HTML实体。利用PDO准备好的语句将文本提交到数据库。这足以正确清理输入吗?我一直在阅读这方面的内容,很多人都说要使用魔术引号,但我读到魔术引号已经过时了,大多数人建议不要使用它。提前感谢您的帮助! 最佳答案 嗯,PDO只适用于初学者手册中的基本案例。任何复杂

  9. php - 关于 Apache 如何处理文件上传的任何文档? - 2

    我花了几个小时在谷歌上搜索,并搜索了Apache站点,但我找不到任何关于Apache如何处理文件上传的文档——尤其是大文件。我读过anecdotalreports在上传完成之前不涉及PHP,这是我所期望的。但至于Apache在上传过程中做了什么,我找不到任何东西。我热衷于文档的原因是Apache将上传内容完全存储在内存中,而不是将它们流式传输到磁盘。httpd将使用我正在使用的服务器上可用内存的每个字节,直到它崩溃。通常,消耗的物理内存量是正在上传的文件大小的3倍,并且增加了大约5MB/s(远不及我的上传速度)。我已经在我正在使用的另一个LAMP堆栈上测试了相同的请求,并且Apache

  10. php - 将来自文本字段的输入存储在 PHP 变量中 - 2

    很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭12年前。将文本字段中的用户输入存储在变量中。有什么办法吗?

随机推荐