gpt4 book ai didi

php - 根据 MYSQL 数据类型检查 PHP 变量类型

转载 作者:行者123 更新时间:2023-11-29 14:33:19 24 4
gpt4 key购买 nike

只是想知道,是否有任何类、函数或想法如何根据 mysql 数据类型验证特定值/变量。

我们在 PHP 中有 is_int() is_string() is_float() 等等...但我们没有全部。或者我们呢?有备忘单吗?有什么想法吗?

编辑:要点基本上是:

  • Go 遍历一组值(例如来自 CSV)。
  • 我知道什么表,并且拥有所有列信息(数据类型很好)(使用 adodb)。
  • 只需检查每个值是否适合特定列...

最佳答案

如果数据来自 CSV 文件,您必须记住所有值都将是字符串(即使数字字符串仍然具有字符串类型)。

所以你不能使用 is_int()/is_float()/etc.,因为这只能告诉你类型或变量。您可以使用 is_numeric() 来检查该值,但这将允许使用诸如“+0123.45e6”之类的指数表示法。有时,ctype_digit() 对于测试整数很有用,因为它只允许数字 0-9 出现在字符串中才能返回 true。

正则表达式也可用于识别基于模式的数据类型,但在处理大型数据集时,您必须注意性能开销。从性能角度来看,几乎总是建议使用 preg_ 系列函数而不是 ereg 函数。

如果您要验证 ENUM 或 SET 类型等内容,您可能需要创建一个包含合法值的数组(或通过查询提取这些值),然后使用 in_array().

对于 CHAR/VARCHAR 字段,您可以解析列定义,然后检查值的长度是否在约束范围内。

如果您的任何列允许 NULL 类型,您还需要对此进行检查(并且可能将空值或字符串“NULL”映射到实际的 NULL 值)。

如果您希望真正正确地转义这些值,请考虑使用准备好的语句和 PDO(PHP 数据对象)扩展。这允许 MySQL 根据类型正确转义数据。 (您还可以将准备好的语句与 MySQLi 一起使用。)

如果您正在寻找特定的数据类型以及如何识别它们,那么您可能需要编辑您的问题以便获得更完整的答案。

关于php - 根据 MYSQL 数据类型检查 PHP 变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9611434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com