php - 在 MySQLi 中查找实际数据类型

标签 php mysqli

我正在尝试找出:

  1. 数据类型
  2. 长度

PHP 中表中的列。我注意到我可以从 INFORMATION_SCHEMA 以及我自己的表中执行此操作:

$query = $link->query("SELECT * FROM `events` LIMIT 1");
$row = mysqli_fetch_fields($query);
foreach($row as $field){
    print_r($field);
}

响应肯定是一个数组。我几乎发现了类似的一切:

( 
    [name] => id 
    [orgname] => id 
    [table] => events 
    [orgtable] => events 
    [def] => 
    [db] => myliveca_baikalpik 
    [catalog] => def 
    [max_length] => 1 
    [length] => 11 
    [charsetnr] => 63 
    [flags] => 49667 
    [type] => 3 
    [decimals] => 0 
) 

到目前为止,我已经知道了数据的长度,但数据类型似乎仍然以数字形式编码(或其他形式),如下所示:

  • 3 表示整数
  • 时间为 11
  • 文本为 252

我如何回溯这个?

最佳答案

您可能正在寻找predefined mysqli constants :

["MYSQLI_TYPE_DECIMAL"]=>
  int(0)
  ["MYSQLI_TYPE_TINY"]=>
  int(1)
  ["MYSQLI_TYPE_SHORT"]=>
  int(2)
  ["MYSQLI_TYPE_LONG"]=>
  int(3)
  ["MYSQLI_TYPE_FLOAT"]=>
  int(4)
  ["MYSQLI_TYPE_DOUBLE"]=>
  int(5)
  ["MYSQLI_TYPE_NULL"]=>
  int(6)
  ["MYSQLI_TYPE_TIMESTAMP"]=>
  int(7)
  ["MYSQLI_TYPE_LONGLONG"]=>
  int(8)
  ["MYSQLI_TYPE_INT24"]=>
  int(9)
  ["MYSQLI_TYPE_DATE"]=>
  int(10)
  ["MYSQLI_TYPE_TIME"]=>
  int(11)
  ["MYSQLI_TYPE_DATETIME"]=>
  int(12)
  ["MYSQLI_TYPE_YEAR"]=>
  int(13)
  ["MYSQLI_TYPE_NEWDATE"]=>
  int(14)
  ["MYSQLI_TYPE_ENUM"]=>
  int(247)
  ["MYSQLI_TYPE_SET"]=>
  int(248)
  ["MYSQLI_TYPE_TINY_BLOB"]=>
  int(249)
  ["MYSQLI_TYPE_MEDIUM_BLOB"]=>
  int(250)
  ["MYSQLI_TYPE_LONG_BLOB"]=>
  int(251)
  ["MYSQLI_TYPE_BLOB"]=>
  int(252)
  ["MYSQLI_TYPE_VAR_STRING"]=>
  int(253)
  ["MYSQLI_TYPE_STRING"]=>
  int(254)
  ["MYSQLI_TYPE_CHAR"]=>
  int(1)

您可以通过以下方式查找所有预定义常量的值:

<?php

echo "<pre>";
   var_dump(get_defined_constants());
echo "</pre>";
?>

关于php - 在 MySQLi 中查找实际数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28640428/

相关文章:

php - 无法将 mysql_fetch_array 更改为 mysqli_fetch_array

php - MySQL 错误 : Commands out of sync; you can't run this command now

php - mysqli_fetch_object 不返回某些表中字符串中的重音符号

javascript - 根据其他图像的位置将图像旋转 90 度

javascript - PreventDefault() 不适用于 form.submit()

php - 为什么我收到错误 "Commands out of sync; you can' t 现在运行此命令”

php - Mysqli 多查询不更新所有字段

php - 我使用 mysql_real_escape_string 对吗?

php - 无法使用 MySQL Workbench 访问 WordPress 数据库

php - 只是在 mysql 错误中插入空白数组()