Я собираю сайт PHP для проекта класса, и мы используем базу данных MS SQL Server 2008 для заполнения полей на сайте.Однако одно из полей выводит мусор на страницу вместо того, что фактически хранится в базе данных.
Рассматриваемое поле, называемое description
, является полем varchar(MAX)
;хранимая процедура запрашивает у базы данных кортеж и выгружает значения из ее таблицы в текстовые поля на странице;поле description
выводится в элемент управления textarea
.
Вот PHP, который обрабатывает извлечение информации из базы данных:
$res = odbc_exec($dbhandle, "exec dbo.usp_ProgramGet " . $_GET["program"]);
$id = $_GET["program"];
$name = odbc_result($res, "title");
$desc = odbc_result($res, "description");
Переменная $name
работает как положено(в базе данных он имеет тип char(15)
).Однако, если (например) поле description
содержит «Это тест», тогда $desc
приведет к «� $ ime�����», что вместо этого выводится в элемент управления textarea
.о том, что хранится в базе данных.
Я искал во всем и пока не нашел решения этой проблемы, хотя это звучит как ошибка в самом PHP, хотя я не уверен.
Обновление
Я использую запросы SQL Server для обновления значений varchar.Я попытался вставить действительно длинную строку и получил следующее:
�,ime�������stringDayToInt��É������à‰,���N={���������������������������������������������
"stringDayToInt" - это имя PHP-функции, которую я написал, которая живет в совершенно другом файле, который был включен в страницу, которую япопробовать.Очень странно.