Я получил базу данных от клиента и должен создать вокруг нее некоторую логику, такую как чтение и вставка записей.Специальные символы в именах столбцов
Когда я попробовал некоторые основные запросы, как:
$json = array();
$query = "select * from tab1";
if ($result = $link->query ($query)) {
while ($row = $result->fetch_assoc()) {
array_push ($json, $row);
}
}
die (json_encode ($json));
я неожиданно получил пустой ответ.
Выполнение одного и того же запроса непосредственно из PHPMyAdmin, я получил все ожидаемые результаты.
Когда я просто сбрасывал результат JSON в браузере, я заметил (экстракт):
... string(30) "ColumnName(�)" ...
Это мне потребовалось некоторое время, чтобы выяснить, что там было колонны имени с некоторой специальной Charaters, как µ
и °
. По-видимому, они не могли отображаться должным образом, поэтому весь ответ стал недействительным, и я не получил никаких результатов.
Просто удаление этих символов из названия столбца решило проблему.
Есть ли другое решение, вместо того, чтобы просто искать эти символы вручную и удалять их?
Там нет врожденной проблемы со специальными символами в колонке имена. Что именно делает ваш код? – VoteyDisciple
Установите charset для соединения с utf8 (utf8mb4 - это реальная кодировка Unicode в mysql, поэтому используйте это, если хотите) и поместите имена таблиц и столбцов в обратные ссылки. –