2014-04-12 8 views
0

어떻게 다른 데이터베이스 테이블에 삽입 할 수 있습니다. PHP에서 먼저 나는 데이터베이스를 선택하고 그 후 나는INSERT INTO 다른 테이블

$con=mysqli_connect("localhost","usr","123"); 
mysqli_select_db($con,"mydb"); 
$myfilling=mysqli_query($con,$sql); 

내가 $sql

INSERT INTO tbl_18 (a,b,c,d,e) VALUES (...) 
INSERT INTO tbl_38 (a,b,c,d,e) VALUES (...) 
INSERT INTO tbl_67 (a,b,c,d,e) VALUES (...) 
INSERT INTO tbl_42 (a,b,c,d,e) VALUES (...) 
INSERT INTO tbl_38 (a,b,c,d,e) VALUES (...) 

에 대한 코드 아래 시도 MySQL의 문자열을 실행하지만 올바른 구문 아래 쇼의 오류가 무엇인지 'INSERT INTO tbl_67 ...' 근처에서 사용하는 내 코드에서 잘못됨

+0

실행하려는 실제 SQL을 표시해야합니다. BTW - 테이블 이름은 개발자의 정 결함에 대해 더 잘 설명해야합니다. –

+0

정확한 코드를 표시 할 수 있습니까? – hjpotter92

답변

2

mysqli_query은 한 번에 하나의 SQL 쿼리에만 사용됩니다. 대신 mysqli_multi_query을 사용하고 각 쿼리를 세미콜론으로 구분하십시오.

$con=mysqli_connect("localhost","usr","123"); 
mysqli_select_db($con,"mydb"); 
$sql = 'INSERT INTO tbl_18 (a,b,c,d,e) VALUES (...);'. 
     'INSERT INTO tbl_38 (a,b,c,d,e) VALUES (...);'. 
     'INSERT INTO tbl_67 (a,b,c,d,e) VALUES (...);'. 
     'INSERT INTO tbl_42 (a,b,c,d,e) VALUES (...);'. 
     'INSERT INTO tbl_38 (a,b,c,d,e) VALUES (...);'; 
$myfilling = mysqli_multi_query($con,$sql); 

또는 쿼리를 분리하여 하나씩 실행할 수 있습니다.

$con=mysqli_connect("localhost","usr","123"); 
mysqli_select_db($con,"mydb"); 
mysqli_query($con,'INSERT INTO tbl_18 (a,b,c,d,e) VALUES (...)'); 
mysqli_query($con,'INSERT INTO tbl_38 (a,b,c,d,e) VALUES (...)'); 
mysqli_query($con,'INSERT INTO tbl_67 (a,b,c,d,e) VALUES (...)'); 
mysqli_query($con,'INSERT INTO tbl_42 (a,b,c,d,e) VALUES (...)'); 
mysqli_query($con,'INSERT INTO tbl_38 (a,b,c,d,e) VALUES (...)'); 
+0

CPU 사용과 시스템 메모리에 어느 쪽이 더 낫습니까? – MOB

+0

mysqli_multi_query는 여러 번의 쿼리를 처리 할 때 더 좋은 방법입니다. 하나의 쿼리 만 데이터베이스로 가져올 수 있기 때문입니다. – Brett