Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / выпоняются не все инструкции / 4 сообщений из 4, страница 1 из 1
25.06.2014, 12:27
    #38679578
sqlite_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выпоняются не все инструкции
Доброго дня всем!

для наглядности упростил код, сам код на PHP

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
/*	инициализация	*/

$result_1 = NULL;
$result_2 = NULL;
$result_3 = NULL;
$result_4 = NULL;


/*	запросы, которые будут выполняться последовательно	*/

$query_1 = "
	CREATE TABLE IF NOT EXISTS test (id INTEGER NOT NULL PRIMARY KEY ON CONFLICT ABORT AUTOINCREMENT, test TEXT);
	INSERT INTO test (test)
	SELECT 'tttt';
	SELECT last_insert_rowid() AS id;
";

$query_2 = "SELECT * FROM test;";

$query_3 = "
	INSERT INTO test (test)
	SELECT 'tttt';
";

$query_4 = "SELECT * FROM test;";

$dbh_1 = new PDO('sqlite:C:\test.sqlite3');
$dbh_2 = new PDO('sqlite:C:\test.sqlite3');
$dbh_3 = new PDO('sqlite:C:\test.sqlite3');
$dbh_4 = new PDO('sqlite:C:\test.sqlite3');

$sth_1 = $dbh_1->prepare($query_1);
$sth_2 = $dbh_2->prepare($query_2);
$sth_3 = $dbh_3->prepare($query_3);
$sth_4 = $dbh_4->prepare($query_4);

if ( $sth_1->execute() )
	$result_1 = $sth_1->fetchAll(PDO::FETCH_BOTH);

if ( $sth_2->execute() )
	$result_2 = $sth_2->fetchAll(PDO::FETCH_BOTH);

if ( $sth_3->execute() )
	$result_3 = $sth_3->fetchAll(PDO::FETCH_BOTH);

if ( $sth_4->execute() )
	$result_4 = $sth_4->fetchAll(PDO::FETCH_BOTH);


echo('<br>$result_1 = ');
var_export($result_1);

echo('<br>$result_2 = ');
var_export($result_2);

echo('<br>$result_3 = ');
var_export($result_3);

echo('<br>$result_4 = ');
var_export($result_4);



в итоге получил
Код: plaintext
1.
2.
3.
4.
$result_1 = array ( )
$result_2 = array ( )
$result_3 = array ( )
$result_4 = array ( 0 => array ( 'id' => '1', 0 => '1', 'test' => 'tttt', 1 => 'tttt', ), )

т.е. получается, что первый скрипт $query_1 выполнился не полностью, а только первая инструкция
"CREATE TABLE IF NOT EXISTS test (id INTEGER NOT NULL PRIMARY KEY ON CONFLICT ABORT AUTOINCREMENT, test TEXT);"

почему такое происходит, и как это побороть?
...
Рейтинг: 0 / 0
25.06.2014, 15:21
    #38679878
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выпоняются не все инструкции
Ну, вероятно, пых-пых, как и остальные средства взаимодействия с базой обеспечивают (исключительно) выполнение запросов. А не скриптов.
...
Рейтинг: 0 / 0
25.06.2014, 16:36
    #38680038
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выпоняются не все инструкции
sqlite_newпочему такое происходит, и как это побороть?Происходит вот по этому:
http://sqlite.org/c3ref/prepare.html
Обрати внимание на последний аргумент функции.

Как побороть - сделать свой модуль для пхп.
...
Рейтинг: 0 / 0
25.06.2014, 17:42
    #38680159
sqlite_new
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выпоняются не все инструкции
White Owl,
Спасибо, буду смотреть
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / выпоняются не все инструкции / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]