mysqli和字段类型

3
我想知道是否有一种简单的方法可以从MySQL表中获取“正确”的数据类型?我的意思是,例如如果字段类型为INT或SMALLINT,是否可以将这些类型直接作为整数传递给PHP?
我进行了一些搜索并找到了mysqli_fetch_fields,但对于SMALLIT类型是2,对于INT是3等等。虽然可以通过这种方式实现,但看起来相当笨拙。有更好的方法吗?
我正在使用PHP和mysqli。
谢谢。

你在哪里找到了类型与值的对应列表? - PeterJCLaw
3个回答

2
最直接的方法是在mysqli调用之上构建自己的数据库处理程序,以为您完成这项工作。

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();
?>

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';


在运行主查询之前使用此操作,在获取数据类型后执行您的操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接