Транзакция используется на моей странице PHP. Поскольку hpcid является внешним ключом таблицы IDC.
У меня есть сто строк информации о человеке (имя, идентификатор, телефон), которые будут вставлены в таблицу IDC, поэтому я хочу использовать цикл while.
Без цикла while я тестировал три строки данных людей, они отлично работают. Но когда цикл добавлен, он работает неудачно.
Здесь код работает нормально:
$query="begin ; insert into HPC (name, begindata, enddate) VALUES('".$_POST['customerName']."','".$_POST['firstDay']."','".$_POST['lastDay']."'); insert into IDC (name,id,phone,hpcid) VALUES('".$_POST['enName3']."','".$_POST['enID3']."','".$_POST['enPhone3']."',LAST_INSERT_ID()); insert into IDC (name,id,phone,hpcid) VALUES('".$_POST['enName4']."','".$_POST['enID4']."','".$_POST['enPhone4']."',LAST_INSERT_ID()); insert into IDC (name,id,phone,hpcid) VALUES('".$_POST['enName5']."','".$_POST['enID5']."','".$_POST['enPhone5']."',LAST_INSERT_ID()); commit;"; $stmt=$conn->query($query);
Здесь код сгенерированного цикла while не работает:
$query="begin ; declare i int; set i = 5; insert into ".$_GET['table']." (name, begindate,enddate) VALUES('".$_POST['customerName']."','".$_POST['firstDay']."','".$_POST['lastDay']."'); insert into IDC (name,id,phone,hpcid) VALUES('".$_POST['enName3']."','".$_POST['enID3']."','".$_POST['enPhone3']."',LAST_INSERT_ID()); insert into IDC (name,id,phone,hpcid) VALUES('".$_POST['enName4']."','".$_POST['enID4']."','".$_POST['enPhone4']."',LAST_INSERT_ID()); while i<106 do insert into IDC (name,id,phone,hpcid) VALUES('".$_POST["enName'+i+'"]."','".$_POST["enID'+i+'"]."','".$_POST["enPhone'+i+'"]."',LAST_INSERT_ID()); set i = i +1; end while; commit;"; $stmt=$conn->query($query);
Я предполагаю, что «ename» + i + '»in while loop is wrong.I hava попробовал enNamei, enName $ i,« enName »+ i, но все они неправильного стиля.
Прежде всего, я хочу понять, как вставлять многие данные в таблицу IDC с циклом while. Например, 100 строк данных, например:
name id phone john1 1 123 john2 2 234 john3 3 345 ...... john100 100 3453
Кто может мне помочь ?