我试图解析由“”返回的MySQL数据类型。
它返回的字符串如下:
int(11) 浮动 varchar(200) int(11)未签名 浮动(6,2)
我尝试过使用正则表达式来完成这项工作,但是它不起作用。
PHP代码:
$string = "int(11) numeric";<br/>
$regex = '/(\w+)\s*(\w+)/';<br/>
var_dump( preg_split($regex, $string) );<br/>发布于 2010-05-26 22:10:14
我用Zend_Db_Adapter_Mysqli::describeTable()编写了代码来完成这个任务。
它处理varchar、char、十进制、浮点数和所有MySQL整数类型。
我不会在这里发布代码,因为StackOverflow的CC-wiki许可策略,但去查看它的链接。
mysql_fetch_field()只报告查询结果集的数据类型,而不报告持久化表。
INFORMATION_SCHEMA是另一种选择,但是MySQL早期实现它的性能非常差,这使得它很难在需要快速响应时间的web应用程序中使用。MySQL 5.1.23中的一些更改试图提高性能,但有些人仍然报告了问题。
发布于 2010-05-26 22:05:31
查询信息图式以查看表和列的内省,以及更多内容。
发布于 2010-05-26 22:02:15
为什么不直接从字段直接中提取元数据呢?
...
$meta = mysql_fetch_field($result, $i);
echo $meta->type;
echo $meta->max_length;https://stackoverflow.com/questions/2917116
复制相似问题