我看到我可以使用函数mysql_client_encoding(...)
在PHP中获取MySQL数据库定义的编码,但是否有办法在PHP中获取MySQL表定义的编码?
答案 0 :(得分:0)
我正在使用SHOW CREATE TABLE
查询,但从不使用PHP
因为我无法想象我是否需要从PHP运行它。 SET NAMES
可以提供任何可能的案例。
请注意,mysql_client_encoding()不返回数据库编码。这是客户端编码,正如它所说的
答案 1 :(得分:0)
据我所知,编码是在MySQL中基于每个数据库定义的,而不是每个表。
答案 2 :(得分:0)
我认为没有简单的方法来检索此信息。我能做的最好就是做一个“SHOW CREATE TABLE”并解析答案:
<?php
$link = mysql_connect('localhost', 'account', 'passwd');
mysql_select_db('my_base');
$q = mysql_query('show create table my_table;');
$row = mysql_fetch_assoc($q);
preg_match("/CHARSET=(.*)/", $row['Create Table'], $matched);
echo "Table was created with charset " . $matched[1];
这给了我:
Table was created with charset utf8
请注意,如果您的表格未使用此信息创建,则可能不会出现字符集。