2014-01-22 3 views
0

Прежде всего, позвольте мне извиниться за заголовок, поскольку это не так объяснимо, но я не мог сказать этого по-другому.Переменная Javascript, разные значения, та же строка

Сделка: Я делаю яваскрипта приложение, в котором я объект под названием «ocorrencia», которое было определено, как это:

var ocorrencia = new Object(); 

, что объект имеет несколько детей, которые заполняются методом :

ocorrencia.idOcorrencia = ""+ year + month + day + hour + minute + second + milisec; 

idOcorrencia это один я имею проблемы с, потому что я бегу DataBase вставки с этим значением, и я использую его 2 раза в одной и той же вставки, как:

var sql = 'INSERT INTO OCORRENCIAS (id, ocorrencia, data, resolucao, urgencia, foto) VALUES (' + ocorrencia.idOcorrencia + ', "' + ocorrencia.descricao + '", "' + ocorrencia.data + '", "' + ocorrencia.resolucao + '", "' + ocorrencia.grauUrg + '", "' + ocorrencia.idOcorrencia + '.jpg"' +')'; 

Вставка отлично работает, у меня есть все данные, вставленные в БД, НО «id» и «foto» (которые должны были получать равные значения) дают мне разные значения на 2 или 3 милисекунды.

Как это может случиться, поскольку я не меняю «ocorrencia.idOcorrencia»?

Это протестировано на устройстве Android.

EDIT: Протестировано в браузере Windows, и проблема не возникает.

Спасибо

+0

Итак, после часов наблюдения на головке монитора мы пришли к выводу. Мне удалось посмотреть на мою БД, и значения были неправильными, поэтому ошибка должна быть при вставке. Я писал один раз как число (для использования в качестве идентификатора), а другое как строку. После попытки записи в виде строки 2 раза значения всегда были правильными, поэтому я буду использовать строку в качестве моего идентификатора. Мы не могли действительно получить объяснение для этого, только если в MySQL есть ошибка в прямом преобразовании большой строки в число. Если кто-то может сказать, если это известная проблема, это было бы здорово! – seugnimod

ответ

0

Я предполагаю, что вы заполняете idOcorrencia во время выполнения? Таким образом, отставание порождает эту разницу. Попробуйте использовать хэш для идентификатора или установить его перед запуском SQL-запроса.

+0

Я заполняю его во время выполнения, но я его заполняю только один раз и использую его дважды, поэтому значение должно быть таким же ... – seugnimod

+0

Извините, вы заполняете его перед sql-заявлением? –

+0

Да, я все еще не работаю. Я нашел обходное решение, которое я объясню в качестве комментария в своем вопросе. Будьте готовы смотреть на это. – seugnimod

Смежные вопросы