Bir sorgu php mysql birden fazla INSERT deyimleri

4 Cevap php

Bu yasal mı?

$string1= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
$string1 .= "INSERT INTO....;";
mysql_query($string1) or die(mysql_error());

4 Cevap

MySQL dev destek 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");

Yani her zaman olduğu gibi, normal gibi gidiyor eklemek:

  • yeni bir satır eklemek istediğiniz ilk tablo adını adlandırma,
  • parantez içinde sütun adlarını adlandırma takip (Not: ALL sütun eklemek isterseniz gerekli değil),
  • VALUES anahtar adı ve ardından parantez içinde yukarıdaki tabloda yeni bir satır eklemek istediğiniz değerleri geliyor, ardından
  • COMMA tarafından takip ve yukarıda belirtilen tabloda yeni bir satır için yeni değerleri ile yuvarlak parantez sonra başka bir çift
  • ve bu sürece eklemek için veri var N-defa tekrarlar.

ONE insert deyimi ile birden çok değer ekleme mutlu. :)

Genel olarak, her bir deyim, bir noktalı virgül ile biter beri geçerli SQL, ama PHP bir kötü yazılmış script istismar olabilir SQL injection saldırılarına karşı korumak amacıyla, bir defada birden fazla sorgu göndermesine izin vermez.

Hala gibi bir sözdizimi kullanabilirsiniz:

INSERT INTO foo VALUES ('a1', 'b1'), ('a2', 'b2');

Hayır Bunlar ayrı sorgular, ve gibi çağrılmalıdır.