в скорлупе ореха я программирую как хобби.Я пытаюсь вставить данные в базу данных SQLite в Safari 5.
Я не беспокоюсь об атаках с использованием инъекций, потому что при использовании внутреннего запеченного расширения я использую его только для сбора данных с некоторых сайтов, которые я посещаю.
Моя транзакция вставляет строку на итерацию цикла, которая содержит данные из «события изменения DOM» (до 20 или около того итераций), не видит переменные, переданные ей правильно.Вызов 'console.log (variable)' показывает, что они содержат правильные данные - но INSERT не вставляют правильные (разные) данные в запись, за исключением первого var, который корректно увеличивается (через мой собственный механизм приращения, который находится вта же сфера действия, что и у других неверных поведений).
Я читал о важности «рабочих», но ничего о них не знаю.
NB Windows 7 Pro
Любые указатели с благодарностьюполучено - спасибо.
enter code here: HandleDOM_Change = function() {
for (p=0; p<snip.length; p++) {
title = snip[p].getElementsByClassName('title')[0].firstChild.textContent;
value = snip[p].getElementsByClassName('value')[0].firstChild.textContent;
lang = snip[p].getElementsByClassName('lang')[0].textContent;
if (hP[p] != lang) {
++count;
id = count;
db.transaction(function (tx) {
console.log("events:" +events+ " title:" +title+ " value/p+1/lang: " +value+ ", " +(p+1)+ ", " +lang);
tx.executeSql('INSERT INTO foo (id, text, time, name) VALUES (?, ?, ?, ?)', [id, title, value, lang]);
},myTransactionErrorCallback,myTransactionSuccessCallback);
hP[p] = lang;
}
}
++events;
}
// Глобальные переменные: события INTEGER, отсечение ARRAY, подсчет INTEGER Пожалуйста, извините за глупые проблемы с синтаксисом - мне пришлось удалить кое-чтоон доступен для чтения - однако суть остается в том, что в журналах консоли сообщается, что переменные содержат то, что я хочу, но «tx.executeSql» говорит «нет».
NB. При попытке найти проблему все ограничения были удалены извставленные значения - даже в первичном ключе не указывается в объявлении (что происходит раньше на глобальном уровне).Также, чтобы уточнить, 'id' увеличивается должным образом и записывается как таковой в БД, но остальные три вставляются с неизменным значением - в отличие от отчета журнала (я понял, что журнал не выводит идентификатор, но он сделалдо чистки - честно).
Большое спасибо.