Замена параметра SQLite и кавычки

.live в настоящее время устарела и заменена на .on:

var confirmerSortie = false;
$(document).on('change', 'select', function() {
    confirmerSortie = true;
});

$(document).on('change keypress', 'input', function() {
    confirmerSortie = true;
});

$(document).on('change keypress', 'textarea', function() {
    confirmerSortie = true;
});
11
задан BlogueroConnor 17 June 2009 в 07:18
поделиться

4 ответа

about "" "Если я удалю кавычки рядом с?, Это сработает. Но я хочу, чтобы кавычки остались там, потому что я помню, что есть случаи, когда они мне нужны." ""

То, что вы помните, когда вы сами строили весь оператор SQL, не имеет значения.

Новая история: отметить с помощью? каждое место в операторе SQL, где вы хотите подставить значение, затем передать кортеж, содержащий одно значение на каждый? -- это так просто; оболочка будет заключать в кавычки любые строки, чтобы убедиться, что они являются допустимыми константами SQL.

10
ответ дан 3 December 2019 в 00:59
поделиться

Я считаю, что стиль привязки именованных параметров гораздо более читабелен - и sqlite3 поддерживает его:

c.execute('SELECT cleanseq FROM cleanseqs WHERE newID=:t', locals())

Примечание: передача {'t': t} или dict (t = t) вместо locals () были бы более точными, но, на мой взгляд, это повлияло бы на удобочитаемость при наличии нескольких параметров и / или более длинные имена. В любом случае, я считаю : t лучше, чем ? ; -).

14
ответ дан 3 December 2019 в 00:59
поделиться

Lose the quotes around ?

c.execute('select cleanseq from cleanseqs WHERE newID=?',(t,))

It's treating it as the string "?".

Do you need to use double quotes around the whole expression, instead of singles?

4
ответ дан 3 December 2019 в 00:59
поделиться

Библиотека будет обрабатывать кавычки и экранирование за вас. Просто напишите свой запрос так:

c.execute('SELECT cleanseq FROM cleanseqs WHERE newID=?', (name,))
2
ответ дан 3 December 2019 в 00:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: