par
josse34 » 24 oct. 2013, 13:15
Bonjour!
Depuis un fichier kml que je transforme et parse en xml, j'obtiens un long tableau avec 3 colonnes name / description / coordinates :
<?php
copy("METEO.kml", "METEO.xml");
$connexion = new PDO('mysql:host=localhost;dbname=xmlmeteo', 'controlenumber', 'PASSWORD');
$connexion->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$connexion->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_OBJ);
$connexion->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
$connexion->setAttribute(\PDO::ATTR_CASE, \PDO::CASE_LOWER);
$connexion->query("CREATE TABLE IF NOT EXISTS xmlmeteo (description VARCHAR(8) PRIMARY KEY, name TEXT, coordinates VARCHAR(20))");
$connexion->exec("DELETE FROM xmlmeteo");
$racine = simplexml_load_file('METEO.xml');
foreach ($racine->Document->Placemark as $marqueur)
{
$name = $marqueur->name;
$description = $marqueur->description;
$racine1 = $marqueur->Point;
$coordinates = $racine1->coordinates;
}
$connexion->exec('INSERT INTO xmlmeteo (description) VALUES ('.$marqueur->description.')');
?>
Si je fais une requête PDO d'insertion dans le foreach, je dépasse allègrement le temps d’exécution maximum.
Le souci étant que je ne sais pas comment faire une seule et unique requête PDO en INSERT pour tout le tableau? Le code ci-dessus n’insère logiquement que la dernière valeur connu dans le foreach de $marqueur->description.
Merci!!!!
Bonjour!
Depuis un fichier kml que je transforme et parse en xml, j'obtiens un long tableau avec 3 colonnes name / description / coordinates :
[php]
<?php
copy("METEO.kml", "METEO.xml");
$connexion = new PDO('mysql:host=localhost;dbname=xmlmeteo', 'controlenumber', 'PASSWORD');
$connexion->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$connexion->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_OBJ);
$connexion->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
$connexion->setAttribute(\PDO::ATTR_CASE, \PDO::CASE_LOWER);
$connexion->query("CREATE TABLE IF NOT EXISTS xmlmeteo (description VARCHAR(8) PRIMARY KEY, name TEXT, coordinates VARCHAR(20))");
$connexion->exec("DELETE FROM xmlmeteo");
$racine = simplexml_load_file('METEO.xml');
foreach ($racine->Document->Placemark as $marqueur)
{
$name = $marqueur->name;
$description = $marqueur->description;
$racine1 = $marqueur->Point;
$coordinates = $racine1->coordinates;
}
$connexion->exec('INSERT INTO xmlmeteo (description) VALUES ('.$marqueur->description.')');
?>
[/php]
Si je fais une requête PDO d'insertion dans le foreach, je dépasse allègrement le temps d’exécution maximum.
Le souci étant que je ne sais pas comment faire une seule et unique requête PDO en INSERT pour tout le tableau? Le code ci-dessus n’insère logiquement que la dernière valeur connu dans le foreach de $marqueur->description.
Merci!!!!