Создать mysql хранимую процедуру из файлаPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Создать mysql хранимую процедуру из файла

Сообщение Anonymous »

Я пытаюсь создать хранимую процедуру с помощью PHP. Мои чтения показывают, что лучший способ сделать это - запустить файл .sql с помощью команды exec в PHP.

При тестировании я создал файл с именем amtv3_create_routines.sql с помощью это содержимое:

Код: Выделить всё

DELIMITER //

DROP PROCEDURE IF EXISTS createTc //
CREATE PROCEDURE createTc()
BEGIN
drop table if exists v3_tc;

CREATE TABLE v3_tc (
source BIGINT UNSIGNED NOT NULL ,
dest BIGINT UNSIGNED NOT NULL ,
PRIMARY KEY (source, dest) )
ENGINE = InnoDB;

insert into v3_tc (source, dest)
select distinct rel.sourceid, rel.destinationid
from rf2_ss_relationships rel inner join rf2_ss_concepts con
on rel.sourceid = con.id and con.active = 1
where rel.typeid = (select distinct conceptid from rf2_ss_descriptions where term = 'is a')
and rel.active = 1;

REPEAT

insert into v3_tc (source, dest)
select distinct b.source, a.dest
from v3_tc a
join v3_tc b on a.source = b.dest
left join v3_tc c on c.source = b.source and c.dest = a.dest
where c.source is null;

set @x = row_count();

select concat('Inserted ', @x);

UNTIL @x = 0 END REPEAT;
create index idx_v3_tc_source on v3_tc (source);
create index idx_v3_tc_dest on v3_tc (dest);
END //
DELIMITER;
Этот код работает нормально, когда я вручную ввожу его в mysql 5.6.22
Однако, если я сохраню файл и из командной строки введу команду.

Код: Выделить всё

mysql -uroot -p -hlocalhost amtv3  < [full path]/amtv3_create_routines.sql
Я пробовал сохранить файл, используя кодировку utf8 и кодировку Windows 1252.

Из командной строки появляется обратной связи нет, и процедура не создается.
В PHP я использую фреймворк codeigniter. Если я использую метод db->query, я могу создать хранимую процедуру, однако база данных теряет соединение. вызов $db->reconnect() работает, но ненадежно.

Есть предложения о том, как создать хранимую процедуру?

Подробнее здесь: https://stackoverflow.com/questions/275 ... -from-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»