Мы пытаемся извлечь данные из MS SQL Server с помощью драйвера FreeTDS для PDO и вставляем его в таблицу MySQL. Тем не менее, кажется, что одна запись заполняется правильными данными, за которой следует строка нежелательных символов и даже других запросов. Мы смогли выполнить репликацию, повторно импортировав одну и ту же запись, и каждый раз, когда она включала разные данные мусора.Ошибка ввода в MySQL
Неужели кто-то еще сталкивается с таким нечетным поведением? Что может быть причиной этого?
Код в основном сводится к выбору полей NVARCHAR из SQL Server и вставка его в поля VARCHAR в MySQL. Например:
SQL Server:
SELECT ItemName FROM Items;
возвращает 'gat43C4533'
MySQL:
INSERT INTO Items (ItemName) VALUES ('gat43C4533');
результат в таблице MySQL является
gat43?4533 -*[$%^&^%#$^%&] . CASE WHEN GHYT.Test...
Есть в любом случае PDO может вызвать какой-то тип ошибки или обработать это изящно, не заполняя поле мусором?
Возможно, это может быть ошибка в MySQL или FreeTDS? Никто не обратил внимание на то, что появляется случайный код SQL. Поскольку, похоже, вы пытаетесь вставить некоторые нечитаемые данные, может возникнуть проблема с памятью, когда данные возвращаются из какой-либо случайной ячейки памяти? Или есть коррупция памяти?
Мы не можем помочь вам, если вы не указали свой код. – Barmar
Не могли бы вы предоставить некоторые примеры данных, которые вызывают коррупцию и запросы? – ydoow
Не уверен, но, возможно, вам нужно включить круглые скобки вокруг значений. Я никогда не видел этого без: 'INSERT INTO Items (ItemName) VALUES ('gat43C4533')' – Robbert