Страницы: 1
Не могу втавить текст в таблицу sqlite
var t = 'Hello'; var sqlReq = "INSERT INTO 'testText' ('txt') VALUES ("+t+")"; ...........
Выдает ошибку NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [mozIStorageConnection.createStatement]. Если в переменную t вставить числовое значение, то все нормально вставляется. В чем причина и как правильно записать что-бы без ошибок?
Отредактировано bucke (10-02-2013 03:41:57)
Отсутствует
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
Помогло)) Огромное спасибо
Отредактировано bucke (10-02-2013 03:52:58)
Отсутствует
и как правильно записать что-бы без ошибок?
С использованием параметров:
var stmt = mDBConn.createStatement("insert into tb_test (name) values (:name)"); stmt.bindStringParameter(0,"te'st"); stmt.execute();
И только именно так - строковая конкатенация параметров при работе с любой БД считается очень плохой практикой. Потому что как вы будете конкатенироавть, если потребуется вставить строку, содержащую апостроф? И потому что есть такая штука, как sql injection, которую предотвращает использование параметров. И потому что параметризованные запросы будут подняты из кэша при повторном использовании.
Отсутствует
Страницы: 1