代码之家  ›  专栏  ›  技术社区  ›  Brad

有没有一种方法可以在PHP中获得MySQL表定义的编码?

  •  0
  • Brad  · 技术社区  · 16 年前

    我看到我可以得到一个MySQL数据库定义的编码在PHP使用的功能 mysql_client_encoding(...) 有没有一种方法可以在PHP中获得MySQL表定义的编码?

    3 回复  |  直到 9 年前
        1
  •  0
  •   Patrick    16 年前

    我认为没有简单的方法来检索这些信息。我所能做的就是做一个“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
    

    请注意,如果表不是使用此信息创建的,则可能不存在字符集。

        2
  •  0
  •   Your Common Sense    16 年前

    我正在使用 SHOW CREATE TABLE
    因为我无法想象我是否需要从PHP运行它。 SET NAMES 可以处理任何可能的案子。

    注意mysql\u client\u encoding()返回的不是数据库编码。就像上面说的,这是客户端编码

        3
  •  0
  •   bogdan    16 年前

    据我所知,编码是在MySQL中按数据库定义的,而不是按表定义的。