Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите разобраться с TRANSACTIONS в SQLute

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: не срабатывает второй запрос
kappa
Отправлено: 05 Декабря, 2011 - 13:32:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




Извините, ошибся в названии темы (SQLite).
Впервые пишу такой запрос. Посмотрите, что не так?

PHP:
скопировать код в буфер обмена
  1.    function saveTov($name, $desc, $main_img, $images, $cat, $price, $visited) {
  2.        $this->_db->query('BEGIN;');
  3.        $sql = "
  4.       INSERT INTO tovar (cat, name, price, title_img, images, descriptions, visited)
  5.       VALUES ($cat, '$name', $price, '$main_img', '$images', '$desc', $visited);
  6.       INSERT INTO goods_sizes (good_id, size_id) VALUES (1, 2);
  7.       ";
  8.        $this->_db->query('COMMIT;');
  9.        $res = $this->_db->query($sql);
  10.        return $res;
  11.        
  12.    }

Вставляет только первый INSERT.

(Отредактировано автором: 05 Декабря, 2011 - 13:35:50)

 
 Top
EuGen Администратор
Отправлено: 05 Декабря, 2011 - 13:41:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




BEGIN TRANSACTION

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
kappa
Отправлено: 05 Декабря, 2011 - 13:59:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




EuGen
Пробую так,

PHP:
скопировать код в буфер обмена
  1. $this->_db->query('BEGIN TRANSACTION;');


но в goods_sizes почему-то не хочет заносить данные (int)

(Отредактировано автором: 05 Декабря, 2011 - 14:02:40)

 
 Top
EuGen Администратор
Отправлено: 05 Декабря, 2011 - 14:18:27
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




sqlite_error_string(sqlite_last_error())
что сообщает?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
kappa
Отправлено: 05 Декабря, 2011 - 14:37:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




Вот дописал
PHP:
скопировать код в буфер обмена
  1. function saveTov($name, $desc, $main_img, $images, $cat, $price, $visited) {
  2.        $this->_db->query('BEGIN TRANSACTION;');
  3.           $sql = "
  4.              INSERT INTO tovar (cat, name, price, title_img, images, descriptions, visited)
  5.              VALUES ($cat, '$name', $price, '$main_img', '$images', '$desc', $visited);
  6.              INSERT INTO goods_sizes (good_id, size_id) VALUES (1, 2);
  7.      ";
  8.        $this->_db->query('COMMIT;');
  9.        $res = $this->_db->query($sql) or die (sqlite_error_string(sqlite_last_error()));
  10.      
  11.        return $res;
  12.        
  13.    }


Но sqlite_error_string(sqlite_last_error() ничего не сообщает, а данные в tovar заносятся,
а в goods_sizes нет.
 
 Top
EuGen Администратор
Отправлено: 05 Декабря, 2011 - 14:45:03
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




http://stackoverflow[dot]com/questio[dot][dot][dot]work-as-expected

И, возможно, использовать PDO
sqlite2 - это вообще простенькая СУБД. Не исследовал как там дело обстоит с транзакциями, так как обычно уже всегда используется sqlite3


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
kappa
Отправлено: 05 Декабря, 2011 - 15:15:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




EuGen
Спасибо, буду пробовать может что и получится.
Кстати в запросе через SQLite - adminner транзакция срабатывает.
 
 Top
kappa
Отправлено: 05 Декабря, 2011 - 17:48:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




И все таки допилил чего хотел, вот может кому поможет в дальнейшем
уже рабочий вариант.

PHP:
скопировать код в буфер обмена
  1. function saveTov($name, $desc, $main_img, $images, $cat, $price, $visited) {
  2.        $this->_db->query("BEGIN");
  3.        $res = $this->_db->queryExec("
  4.       INSERT INTO tovar (cat, name, price, title_img, images, descriptions, visited)
  5.       VALUES ($cat, '$name', $price, '$main_img', '$images', '$desc', $visited);
  6.       INSERT INTO goods_sizes (good_id, size_id) VALUES ('1', '2');    
  7.     ");
  8.        $this->_db->query("COMMIT");
  9.      
  10.        return $res;  
  11.    }

(Отредактировано автором: 05 Декабря, 2011 - 17:49:27)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB