我在MySQL上使用mysqli_fetch_field_direct获取字段长度,使用:
$tab_field = mysqli_fetch_field_direct($result_fields,$j);
$long = $tab_field->length;
在PhpMyAdmin下创建varchar(100)之后,我得到了100作为我的varchar长度,这是正确的。
现在,我使用MariaDB并对同一个字段使用相同的mysqli_fetch_field_direct调用,给我300个。我接受这样的事实,根据编码,也许它是"内部尺寸",但我需要知道我可以放的字符数,所以我需要回来" 100"。 我注意到PhpMyAdmin在显示"结构"时返回100。该表,但似乎使用SHOW查询而不是fetch_field_direct。
有什么想法吗?
答案 0 :(得分:0)
让我们看看SHOW CREATE TABLE
。我猜这个列是CHAR(100)
的?旧版本是CHARACTER SET latin1
? MariaDB的一个是CHARACTER SET utf8
?
通常VARCHAR
优于CHAR
。 (你找到了一个原因。)
目前,utf8
是首选。