mysqlの& phpmyadminで動作するこのコードは(私はmysqlテスト目的の変数を置き換えました)したがって、-1 -2 -3などをcourse_noに追加します。mysqlデリミタはmysqlでは動作しますが、PHPでは動作しません
drop trigger if exists change_course_no;
delimiter |
CREATE TRIGGER change_course_no BEFORE INSERT ON hybrid_locked
FOR EACH ROW BEGIN
declare original_course_no varchar(50);
declare course_no_counter int;
set original_course_no = new.course_no;
set course_no_counter = 1;
while exists (select true from hybrid_locked where course_no = new.course_no) do
set new.course_no = concat(original_course_no, '-', course_no_counter);
set course_no_counter = course_no_counter + 1;
end while;
END;
|
delimiter ;
insert into hybrid_locked (
requestor_name, academic_unit,
instructor_name, instructor_email, tel_number, creds, more_instructors,
course_name, program_name, term, course_no, classroom, comments, online_exam, participants, hybrid_past1, hybrid_past2, hybrid_past3, date_requested,
main_date_start, main_date_end, main_time_start, main_time_end,
sec_date_start, sec_date_end, sec_time_start, sec_time_end,
unique_date1, unique_date1_time_start, unique_date1_time_end,
unique_date2, unique_date2_time_start, unique_date2_time_end
)
values ('Smith', 'test',
'Joe', '[email protected]', '555-555-5555', 'no', '',
'Physics', '', 'summer', 'TEST101', '1025', '', 'yes', '10',
'unsure', 'unsure', 'unsure', '2016-12-05',
'2016-12-06', '2016-12-29', '17:45:00', '19:45:00',
'0000-00-00', '0000-00-00', '00:00:00', '00:00:00',
'0000-00-00', '00:00:00', '00:00:00',
'0000-00-00', '00:00:00', '00:00:00'
);
しかし、私は私のPHPスクリプトに追加するときには、エラーで失敗します。
あなたのSQL構文でエラーが発生しています。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックしてください。 INSERT ONがライン3
これは、PHPのフォームのコードでの「FOをhybrid_locked BEFOREトリガーのchange_course_noをCREATE:
$query_hybrid =
"
drop trigger if exists change_course_no;
delimiter |
CREATE TRIGGER change_course_no BEFORE INSERT ON hybrid_locked
FOR EACH ROW BEGIN
declare original_course_no varchar(50);
declare course_no_counter int;
set original_course_no = new.course_no;
set course_no_counter = 1;
while exists (select true from hybrid_locked where course_no = new.course_no) do
set new.course_no = concat(original_course_no, '-', course_no_counter);
set course_no_counter = course_no_counter + 1;
end while;
END;
|
delimiter ;
insert into hybrid_locked (
requestor_name, academic_unit,
instructor_name, instructor_email, tel_number, creds, more_instructors,
course_name, program_name, term, course_no, classroom, comments, online_exam, participants, hybrid_past1, hybrid_past2, hybrid_past3, date_requested,
main_date_start, main_date_end, main_time_start, main_time_end,
sec_date_start, sec_date_end, sec_time_start, sec_time_end,
unique_date1, unique_date1_time_start, unique_date1_time_end,
unique_date2, unique_date2_time_start, unique_date2_time_end
)
values ('$requestor_name', '$academic_unit',
'$instructor_name', '$instructor_email', '$tel_number', '$creds', '$more_instructors', '$course_name', '$program_name', '$term', '$course_no', '$classroom', '$comments', '$online_exam', '$participants', '$hybrid_past1', '$hybrid_past2', '$hybrid_past3', '$date_requested',
'$main_date_start', '$main_date_end', '$main_time_start', '$main_time_end',
'$sec_date_start', '$sec_date_end', '$sec_time_start', '$sec_time_end',
'$unique_date1', '$unique_date1_time_start', '$unique_date1_time_end',
'$unique_date2', '$unique_date2_time_start', '$unique_date2_time_end'
)";
私はPHPスクリプトに欠けているのか理解できないのですか?
おかげで、 クリス
残念ながら、現在のサーバでmysqliを使用することはできません – PAPADOC
mysql_ *のみをサポートするサーバを使用している場合は、引き続き使用して大きな障害になります。 – e4c5
助けてくれてうれしい – e4c5