对不起,但是:我怎样才能获得表中列的类型,例如datetime,int(32)或varchar(40)?我有一个结果,即被取入一个物体,vardump打印
object(stdClass)[8]
public 'id' => string '3' (length=1)
public 'email' => string 'me@foo.bar' (length=6)
Run Code Online (Sandbox Code Playgroud)
id应该是一个整数并通过电子邮件发送varchar(i)我正在使用php5和mysqli
谢谢你的帮助!
Haz*_*m_M 13
如果您正在使用mysqli,我强烈推荐这么多原因,那就像它一样简单
$query = "SELECT * from " . $table_name;
if($result = $mysqli->query($query)){
// Get field information for all columns
while ($column_info = $result->fetch_field()){
echo $column_info->type;
}
}
Run Code Online (Sandbox Code Playgroud)
这会打印出一些数字,这些数字表示每列的类型如下:
比特:16
TINYINT:1
布尔:1
SMALLINT:2
MEDIUMINT:9
整数:3
BIGINT:8
序列号:8
FLOAT:4
双倍:5
DECIMAL:246
NUMERIC:246
固定:246
日期:10
日期:12
时间戳:7
时间:11
年:13
CHAR:254
VARCHAR:253
ENUM:254
SET:254
二进制:254
译文:253
TINYBLOB:252
布罗布:252
MEDIUMBLOB:252
TINYTEXT:252
撰文:252
MEDIUMTEXT:252
LONGTEXT:252
有关fetch_field的更多信息,请查看http://us2.php.net/manual/en/mysqli-result.fetch-field.php
要获取该信息,您需要查询 information_schema.columns 表。像这样的事情将获取 MySQL 数据类型:
SELECT DATA_TYPE FROM information_schema.COLUMNS WHERE TABLE_NAME = 'my_table' AND COLUMN_NAME = 'my_column'
Run Code Online (Sandbox Code Playgroud)