我想知道是否有一种简单的方法可以从具有“正确”数据类型的mysql表中获取数据?我的意思是,如果字段类型是例如INT或SMALLINT,是否可以将这些类型直接传递给PHP作为整数?
我做了一些搜索并找到了mysqli_fetch_fields,但是对于SMALLIT类型是2,对于INT 3,依此类推。它可以这样做,但它看起来相当笨拙的解决方法。还有更好的办法吗?
我正在使用PHP和mysqli。
谢谢。
答案 0 :(得分:2)
最直接的方法是在mysqli调用之上构建自己的数据库处理程序,为您执行此操作。
答案 1 :(得分:1)
http://www.php.net/manual/en/mysqli-result.fetch-field-direct.php
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, SurfaceArea from Country ORDER BY Name LIMIT 5";
if ($result = $mysqli->query($query)) {
/* Get field information for column 'SurfaceArea' */
$finfo = $result->fetch_field_direct(1);
printf("Name: %s\n", $finfo->name);
printf("Table: %s\n", $finfo->table);
printf("max. Len: %d\n", $finfo->max_length);
printf("Flags: %d\n", $finfo->flags);
printf("Type: %d\n", $finfo->type);
$result->close();
}
/* close connection */
$mysqli->close();
?>
答案 2 :(得分:0)
您可以使用此代码
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'yourtablename replace your table name' AND COLUMN_NAME = 'tablecolumnname replace your table column name';
在运行主查询之前以及在获取数据类型之后执行操作时,请使用此功能。