有没有办法获取 PHP 中定义的 MySQL 表编码?

发布于 2024-09-03 11:48:48 字数 130 浏览 1 评论 0原文

我发现我可以使用函数 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

舟遥客 2024-09-10 11:48:48

我认为没有简单的方法来检索此信息。我能做的最好的事情就是执行“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

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

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:

<?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];

Which gives me:

Table was created with charset utf8

Note that charset may not be present if your table was not created with this info.

扛起拖把扫天下 2024-09-10 11:48:48

我正在使用 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

岁月如刀 2024-09-10 11:48:48

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

As far as I know the encoding is defined on a per database basis in MySQL and not per table.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文