Insertion multiple
gnaoule
Messages postés
24
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis entrain de faire un script en php qui permet de l'insertion de plus de 1000 enregistrements dans une table. En local le script marche normalement (tous les essais passe bien). mais sur le serveur ; le premier essai passe normalement ,mais quand j'essai un second 20 seconde après
Le serveur se plante et affiche une erreur :
Voici le code php :
Je vous remercie d'avance pour votre aide
EDIT: Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique
Je suis entrain de faire un script en php qui permet de l'insertion de plus de 1000 enregistrements dans une table. En local le script marche normalement (tous les essais passe bien). mais sur le serveur ; le premier essai passe normalement ,mais quand j'essai un second 20 seconde après
Le serveur se plante et affiche une erreur :
Fatal error: Call to a member function rowCount() on boolean in /htdocs/bestschool.eglisia.com/sd/personnes/app-list.php on line 19
Voici le code php :
<?php error_reporting(1); session_start(); include("../../db/db.php"); include("../../db/conx.php"); include("../../funct/code.php"); //include("../../funct/note.php"); include("../../funct/sms.php"); include("../../funct/effectif.php"); include("../../config/conf.php"); if($_SESSION['it'] <= sizeof($_SESSION['_APTAB'])){ $i = 1; for($a = ($_SESSION['it']) ? $_SESSION['it'] : 0; $a < sizeof($_SESSION['_APTAB']); $a++){ $tab = explode("*",$_SESSION['_APTAB'][$a]); if($link->query("SELECT * FROM note_bulmat WHERE AP_mle='".$tab[0]."' AND matiere_ID='".$tab[1]."' AND classe_ID='".$tab[2]."' AND per_id='".$tab[3]."' ")->rowCount()===0){ $rek = $link -> exec("INSERT INTO note_bulmat VALUES( 'NULL', '".$tab[0]."', '".$tab[1]."', '".$tab[2]."', '".$tab[3]."', '".$tab[4]."', '', '".$tab[5]."', '".date("Y-m-d H:i:s",time())."', '', '".$_COOKIE['LOGIN']."')"); $_SESSION['CC'] += 1; if($i == 100 ) break; $i++; }else{ $link->exec("UPDATE note_bulmat SET moyenne='".$tab[4]."', updated='".date("Y-m-d H:i:s",time())."', rang='' WHERE AP_mle='".$tab[0]."' AND matiere_ID='".$tab[1]."' AND classe_ID='".$tab[2]."' AND per_id='".$tab[3]."'"); $_SESSION['CC'] += 1; if($i == 100 ) break; $i++; } } header("refresh:10; url=eva-cmp2.php"); $_SESSION['it'] += 100; } if($_SESSION['it'] >= sizeof($_SESSION["_APTAB"]) ){ $_SESSION['CC'] = 0; $_SESSION['it'] = 0; $_SESSION['_CC'] = 0; header("refresh:5; url='eva-cmp3.php'"); } ?>
Je vous remercie d'avance pour votre aide
EDIT: Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique
A voir également:
- Insertion multiple
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
1 réponse
Bonjour,
Pour commencer, pense, lorsque tu postes du code, à préciser le LANGAGE dans les balises de code.
Explications à lire ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite,
Evites de trop chainer tes fonctions...
C'est moins facile à debuguer.
Donc, réécris le code de la ligne
par exemple comme ceci
Pour commencer, pense, lorsque tu postes du code, à préciser le LANGAGE dans les balises de code.
Explications à lire ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ensuite,
Evites de trop chainer tes fonctions...
C'est moins facile à debuguer.
Donc, réécris le code de la ligne
if($link->query("SELECT * FROM note_bulmat WHERE AP_mle='".$tab[0]."' AND matiere_ID='".$tab[1]."' AND classe_ID='".$tab[2]."' AND per_id='".$tab[3]."' ")->rowCount()===0){
par exemple comme ceci
$sql = "SELECT * FROM note_bulmat WHERE AP_mle='".$tab[0]."' AND matiere_ID='".$tab[1]."' AND classe_ID='".$tab[2]."' AND per_id='".$tab[3]."'"; $res = $link->query($sq); if(!$res){ echo "Erreur dans la requête " . $sql; exit; } if($res->rowCount()===0){