Bonjour,
J'ai récupéré les données dans un array ($dataDistant) d'une basse de donnée externe.
Ensuite, je vais mettre ces données dans une table d'une BDD interne.
Mais cet "array" ($dataDistant) est trop lourd qui contient 96899 entrées.
voici une partie de mon array obtenu :
Mais imaginez qu'il contient 96 899 entrées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 print_r($dataDistant ) /* Array ( [0] => Array ( [id] => 10000000 [quantity] => 10 ) [1] => Array ( [id] => 10000100 [quantity] => 110 ) [2] => Array ( [id] => 10000200 [quantity] => 10 ) //.... */
Comment peux - je diviser en plusieurs morceaux ?
En fait, avec cela je fais une requête préparée : voici un exemple de cette requête :
Array ( [requestSQL] => INSERT INTO db_local_product (id,quantity ) VALUES (:id,:quantity ); [insertValues] => Array ( [:id] => 10000000 [:quantity] => 10 ) )
Array ( [requestSQL] => INSERT INTO db_local_product (id,quantity ) VALUES (:id,:quantity ); [insertValues] => Array ( [:id] => 10000100 [:quantity] => 110 ) )
Array ( [requestSQL] => INSERT INTO db_local_product (id,quantity ) VALUES (:id,:quantity ); [insertValues] => Array ( [:id] => 10000200 [:quantity] => 10 ) )
etc...Comment je peux executer mon script pour qu'il n'y a pas de erreur d’espace dans la mémoire tampon et que la file d’attente soit saturée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 private function req(array $result) { $funcRequestSQL = "INSERT INTO table_int_product (id,quantity ) VALUES (:id,:quantity );"; $insertValues = [ ':id'=> $result['id'], ':quantity'=> $result['quantity'], ]; return $requestMySql = [ 'requestSQL' => $requestSQL, 'insertValues' => $insertValues, ]; } //... $requetesDistant ... SELECT .... print_r($dataDistant); foreach($dataDistant as $result){ foreach($result as $key=>$value){ $requestMySql = $this-> funcRequestSQL($result); } //... $conn ... try { $request = $conn->prepare($requestMySql['requestSQL']); $request->execute($requestMySql['insertValues']); $conn = null; return $status = "SUCCESSFULLY INSERTED "; } catch(\PDOException $e){ self::errorSql ($e, $root, $storeSiteName, $systemName, $subject, $dbname); $conn = null; throw $e; }
Je pense que je dois diviser mon array ($dataDistant) mais comment ?![]()
Partager