이것은 합법적입니까?하나의 쿼리에 여러 개의 mysql INSERT 문이 있습니다.
$string1= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
mysql_query($string1) or die(mysql_error());
이것은 합법적입니까?하나의 쿼리에 여러 개의 mysql INSERT 문이 있습니다.
$string1= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
mysql_query($string1) or die(mysql_error());
그것을 가치, 그리고 같은 테이블 에 동일한 데이터를 삽입하는 인 경우에 따라 무엇을 위해, it's much better to insert multiple values with the one insert 예를 들어, 을 악용 할 수 SQL 주입 공격으로부터 보호하기 위해, 각 문은 세미콜론으로 종료하지만, PHP는 한 번에 두 개 이상의 쿼리를 보낼 수 없기 때문에 일반적으로
INSERT INTO a VALUES (1,23),(2,34),(4,33);
INSERT INTO a VALUES (8,26),(6,29);
"속도 입력"페이지를 참조 해 주셔서 감사합니다. – SarathChandra
아니요. 별도의 쿼리이므로이를 호출해야합니다.
아니요, mysql_query()
은 한 번에 하나의 쿼리 만 허용합니다.
당신은 다음과 같이 여러 행을 삽입 할 수 있습니다
INSERT INTO table (col1, col2)
VALUES (1, 2), (3, 4), (5, 6)
이 방법이 더 좋습니다. 데이터를 덤프 할 필드 이름을 지정하는 것이 중요합니다. ! – itsricky
, 즉 유효한 SQL입니다 저조한 스크립트.
당신은 여전히 같은 구문을 사용할 수 있습니다 : MySQL의 dev에 지원에서
INSERT INTO foo VALUES ('a1', 'b1'), ('a2', 'b2');
그래서 삽입 MySQL dev forum
INSERT INTO table (artist, album, track, length)
VALUES
("$artist", "$album", "$track1", "$length1"),
("$artist", "$album", "$track2", "$length2"),
("$artist", "$album", "$track3", "$length3"),
("$artist", "$album", "$track4", "$length4"),
("$artist", "$album", "$track5", "$length5");
정상 항상 같이 간다 : 먼저 테이블 이름을 명명
ONE 삽입 문을 사용하여 여러 값 삽입하기. : 함수 및 루프 내에서
복사/붙여 넣기 예는 내 문제는이 mysqli 방법을 사용하여 내 PHP 프로젝트 [mysqli에서 여러 쿼리를 실행 해결했다
public function duplicateItem($ids)
{
if (isset($ids[0])){ //at least one item
$sqlQuery = "INSERT INTO items (item_id, content) VALUES ";
for($i=0; $i<count($ids); $i++) {
if ($i == count($ids)-1){
$sqlQuery .= "(".$ids[$i][0].", '".$ids[$i][1]."');";
}else{
$sqlQuery .= "(".$ids[$i][0].", '".$ids[$i][1]."'),";
}
}
mysql_query($sqlQuery) or die('Error, insert query failed: '.mysql_error());
}
}
연결을 피하는 것이 좋습니다. 'implode()'를 사용하십시오. 자세한 내용은이 [대답] (http://stackoverflow.com/a/780046/4040525)을 참조하십시오. –
왜 implode()를 사용하는 것이이 경우에 유익합니까? 위의 질문에서 일반적인 SQL 문이 있습니다. 응답에서 그들은 많은 양의 텍스트 (대용량 텍스트의 1000 개 삽입과 같은)에 대해 말하며, 그 경우 연결을 피하는 것이 좋습니다. –
알아.그것의 연결을 여기에서 사용하는 그것의 OK. 어제는 두 가지 대답을 모두 눈치 챘고 어림짐작으로'implode()'를 사용하는 것이 더 낫다고 생각했습니다. –
INSERT INTO table (a,b) VALUES (1,2), (2,3), (3,4);
(IDS는 $ 배열을 가정) .multi-query.] (http://us2.php.net/manual/en/mysqli.multi-query.php) –