Есть ли способ получить определенную в MySQL кодировку таблицы в PHP? - PullRequest
0 голосов
/ 27 мая 2010

Я вижу, что могу получить кодировку, определенную для базы данных MySQL, в PHP с помощью функции mysql_client_encoding(...), но есть ли способ получить кодировку, определенную в таблице MySQL, в PHP?

Ответы [ 3 ]

0 голосов
/ 27 мая 2010

Насколько я знаю, кодировка определяется для каждой базы данных в MySQL, а не для таблицы.

0 голосов
/ 27 мая 2010

Я не вижу простого способа получить эту информацию. Лучшее, что я мог сделать, это сделать «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

Обратите внимание, что кодировка может отсутствовать, если ваша таблица не была создана с этой информацией.

0 голосов
/ 27 мая 2010

Я использую SHOW CREATE TABLE запрос, но не из PHP.
Потому что я не могу себе представить, нужно ли мне когда-либо запускать его из PHP. SET NAMES может обслуживать любой возможный случай.

Обратите внимание, что mysql_client_encoding () возвращает не кодировку базы данных. Это кодировка клиента, как говорится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...