[PHP] Multiple insert probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
edit:
Oeps verkeerd gepost..had eigenlijk moeten staan in Programming & Webscripting..Sorry mods


Beste Mensen,

Ik heb gezocht en een paar wazige topics erover gevonden maar zonder duidelijk antwoord.

Ik bouw in een script een soort dumpje op van data en die wil ik in 1 keer inserten maar dan krijg ik een fout

Voorbeeld
PHP:
4
5
6
7
8
9
10
11
12
13
<?
mysql_connect("localhost","user","pass");
mysql_select_db("test");

$SQL .= "INSERT INTO test VALUES (1, 'Keeskip', 'Dit is de test van keeskip', '');";
$SQL .= "INSERT INTO test VALUES (2, 'Raoues', 'Dit is de test van Raoues', '');";
$SQL .= "INSERT INTO test VALUES (3, 'leclan', 'Dit is de test van leclan', '');";
$result = mysql_query("$SQL");
    if (!$result) { echo("ERROR: " . mysql_error() . "n$SQLn"); } 
?>


Ik krijg dan de volgende fout
ERROR: You have an error in your SQL syntax near ';INSERT INTO test VALUES (2, 'Raoues', 'Dit is de test van Raoues', '');INSERT I' at line 1n

????

ik los het nu alsvolgt op:
PHP:
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
mysql_connect("localhost","user","pass");
mysql_select_db("test");

$SQL .= "INSERT INTO test VALUES (1, 'Keeskip', 'Dit is de test van keeskip', '');";
$SQL .= "INSERT INTO test VALUES (2, 'Raoues', 'Dit is de test van Raoues', '');";
$SQL .= "INSERT INTO test VALUES (3, 'leclan', 'Dit is de test van leclan', '');";

$SQL_stukje = explode(";",$SQL);

    foreach ($SQL_stukje as $newquery) 
    {
        $result = mysql_query("$newquery");
        if (!$result) 
        { 
        echo("ERROR: " . mysql_error() . "n$SQLn"); 
        } 
    } //End foreach ($SQL_stukje as $newquery) {
?>


Weet iemand waar nu precies die fout vandaan komt ..
De preciese query in PHP myadmin plakken werkt wel??? 8)7

[ Voor 56% gewijzigd door vorlox op 23-02-2003 01:46 ]


Acties:
  • 0 Henk 'm!

  • 2
  • Registratie: November 2000
  • Laatst online: 26-05-2021

2

mysql_query kan maar 1 query tegelijk hebben.

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Je doet multiple inserts in een query zo:
INSERT INTO test VALUES (1, 'Keeskip', 'Dit is de test van keeskip', ''), (2, 'Raoues', 'Dit is de test van Raoues', ''), (3, 'leclan', 'Dit is de test van leclan', '')

Acties:
  • 0 Henk 'm!

Verwijderd

laatste versie is correcte versie... zo kan je veel in 1x doen...

--> move to /14 :)

[ Voor 15% gewijzigd door Verwijderd op 23-02-2003 08:14 . Reden: --> move to /14 :) ]


Acties:
  • 0 Henk 'm!

  • nikao
  • Registratie: November 1999
  • Laatst online: 10-02-2022
tsja.. bij je eerste voorbeeld bouw je gewoon een 1 query met meerdere inserts achter elkaar.. terwijl mysql 1 query verwacht.. die snapt daar dus nix van :)
het ligt er maar aan hoe dynamisch je het geheel wilt hebben.. anders is je 2e oplossing nog niet zo gek..

Acties:
  • 0 Henk 'm!

Verwijderd

De oplossing van de topicstarter zelf is niet goed genoeg; strings mogen gewoon een puntkomma bevatten, en je wilt niet dat hij dan op een puntkomma in een string gaat splitten.
Je zult dus moeten kijken of die puntkomma binnen een string zit of niet.

Move: Webdesign & Graphics => Programming & Webscripting

Acties:
  • 0 Henk 'm!

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 01-09 11:48
_js_ schreef op 23 February 2003 @ 04:04:
Je doet multiple inserts in een query zo:
INSERT INTO test VALUES (1, 'Keeskip', 'Dit is de test van keeskip', ''), (2, 'Raoues', 'Dit is de test van Raoues', ''), (3, 'leclan', 'Dit is de test van leclan', '')
Juist :) Uitgewerkt voorbeeldje:
PHP:
1
2
3
4
5
6
7
8
$inserts = array();
$inserts[] = "(1, 'Keeskip', 'Dit is de test van keeskip', '')";
$inserts[] = "(2, 'Raoues', 'Dit is de test van Raoues', '')";
$inserts[] = "(3, 'leclan', 'Dit is de test van leclan', '')";
// (onzinnige?) zeur-mode: alle " vervangen door ' en alle ' door " :P

$query = 'INSERT INTO test VALUES ' . implode(', ', $inserts);
$result = mysql_query($query);

[ Voor 45% gewijzigd door DRvDijk op 23-02-2003 13:27 . Reden: Onzinnige? zeurzooi erbij ;) ]


Acties:
  • 0 Henk 'm!

Verwijderd

maar is het verwerken van 'grote' multiple inserts nu sneller? :X

Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Topicstarter
hmm ja ik snap da ik eigenlijk eerst even een string replace moet doen op ; voordat ik ga exploden..maar het ging fff om het voorbeeld.


Thanks elviver...dat ga ik eens even proberen
Pagina: 1