【问题标题】:Get type specification char from MySQLi field从 MySQLi 字段获取类型规范字符
【发布时间】:2012-12-31 11:22:54
【问题描述】:

在 MySQLi 的预处理语句 API 中,bind_param 采用类型规范字符。

MySQLi 的fetch_field 返回一个具有多个与该字段相关的属性的对象。但是,类型规范 char 不是可用属性之一($field->type 返回一个与常量对应的整数,而不是类型规范 char)。

从 MySQLi 字段中获取类型规范字符的最佳方法是什么?

【问题讨论】:

  • mysqli_result::fetch_field() 应该返回字段的数据类型。这足够好还是您特别需要其中一封信?我不确定 bind_param 参数如何与 fetch_field...
  • @MikeB 我的目标是专门获取类型规范 char;我可以创建自己的方法,但我觉得这可以通过核心 API 完成。
  • 这有关系吗?类型不会与 bind_param 使用的类型 1:1 映射。您必须创建自己的转换数组。
  • @MikeB 谢谢,但我可能会使用MySQLi constants 来避免将来值发生变化时出现任何问题。 datasage,谢谢,它回答了我是否需要编写自己的方法或者是否已经存在的问题。
  • 只是出于好奇,您需要特定类型的原因是什么? PHP 是一种动态类型的语言,所以它真的不重要。

标签: php mysql database mysqli prepared-statement


【解决方案1】:

只需将所有内容都视为字符串,并使用类型s。 mysql 服务器在处理查询时自动将字符串转换为列的实际数据类型,例如你可以写set int_col = '32'之类的东西,它会把它当作set int_col = 32

有一点额外的开销,因为数字数据不会以二进制形式传输;服务器将不得不解析它们。但除非您执行大量 INSERT 或 UPDATE 语句,否则这可能可以忽略不计。

【讨论】:

    猜你喜欢
    • 2018-06-12
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多