有没有办法获取 PHP 中定义的 MySQL 表编码?
我发现我可以使用函数 mysql_client_encoding(...)
获取 MySQL 数据库在 PHP 中定义的编码,但是有没有办法获取 MySQL 表在 PHP 中定义的编码?
I see I can get a MySQL database defined encoding in PHP using the function mysql_client_encoding(...)
, but is there a way to get a MySQL table defined encoding in PHP?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为没有简单的方法来检索此信息。我能做的最好的事情就是执行“SHOW CREATE TABLE ;”并解析答案:
这给了我:
请注意,如果您的表不是使用此信息创建的,则字符集可能不存在。
I see no easy way to retrieve this info. The best I could do is to do a "SHOW CREATE TABLE ;" and parse the answer:
Which gives me:
Note that charset may not be present if your table was not created with this info.
我正在使用
SHOW CREATE TABLE
查询,但从未使用 PHP。因为我无法想象我是否需要从 PHP 运行它。
SET NAMES
可以服务于任何可能的情况。请注意,mysql_client_encoding() 返回的不是数据库编码。正如它所说,这是客户端编码
I am using
SHOW CREATE TABLE
query, but never from PHP.Because I can't imagine if I ever need to run it from PHP.
SET NAMES
can serve any possible case.Note that mysql_client_encoding() returns not database encoding. It's client encoding, as it says
据我所知,编码是在 MySQL 中基于每个数据库而不是每个表定义的。
As far as I know the encoding is defined on a per database basis in MySQL and not per table.