Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/04/2017, à 16:39

gboul

[RESOLU] Mysql & Php connexion arrêtée intempestivement

Bonjour,
Je n'ai pas réussi à trouver une réponse sur le net, du coup, je me tourne vers vous afin de savoir si quelqu'un pouvait m'aider.

Je suis en train de faire un script php afin d'uploader des photos et les rentrer dans ma base MySQL. Le problème est que tout à l'air de bien se dérouler jusqu'au moment d'intégrer une entrée à ma base MySQL, puisque le script s'arrête et il est impossible d'uploader plus d'un fichier. Le problème à commencer lors du passage de php 5 à 7.0. A cause de cela, j'ai dû réécrire une partie de mon script. Voici le script que j'ai écrit.

Grâce à un POST, je peux uploader jusqu'à 7 fichiers, en plus de cela, j'ai des champs pour le lieu et l'évènement concerné.
Lors du début du script, je récupère la taille du fichier, je compte le nombre de fichier et je créé le répertoires nécessaire. Le nom d'utilisateur est récupérer lors de la connexion de l'utilisateur.

$server="localhost";
$database="MaBase";
$mysql_user="monnom";
$mysql_pwd="monpasse";
$i=0;

While ($i<=$file_count AND $ext==0)
                      {
                      try
                                {
                                $link = new PDO('mysql:host='.$server.';dbname='.$database.'', $mysql_user, $mysql_pwd);
                                echo "avant connexion<br>";
                                $stml = $link->prepare('INSERT INTO db_photo (evenement, file_name, repertoire, lieu, date, taille, user_name) VALUES (:evenement, :lieu, :date, :taille, :user_name)');

                                echo "connexion<br>";

                                $stmt->bindParam(':evenement', $Evenement);
                                $stmt->bindParam(':file_name', $File_name[$i]);
                                $stmt->bindParam(':repertoire', $Repertoire);
                                $stmt->bindParam(':lieu', $Lieu);
                                $stmt->bindParam(':date', $Date);
                                $stmt->bindParam(':size', $Taille[$i]);
                                $stmt->bindParam(':user_name',$User_name);
                                $stmt->execute();

                               echo "fin Mysql<br>";

                                }
                        catch (Exception $e)
                                {
                                echo "Erreur de connexion Mysql<br>";
                                Exit ('Erreur : '.$e->getMessage());
                                }
                        $stmt->closeCursor();
                        $i++;
                        }

J'ai ajouté des fonction "echo" afin de pouvoir déterminer à quel moment le script ne fonctionne plus.
Lors du lancement du script les lignes qui apparaissent sont:
[*]avant connexion[/*]
[*]connexion[/*]

Puis plus rien. Le script s'arrête.
J'ai vérifié si toutes les variables étaient présentent et elles l'étaient.
J'ai aussi essayer dans MySQL d'ajouter une ligne manuellement avec le même nom d'utilisateur que celui utilisé dans le script et tout fonctionne.

Quelqu'un aurait-il une idée sur la raison de l'arrêt du script, s'il vous plaît?

Merci beaucoup.

J'ai essayé aussi avec un autre script qui donne la même chose:

$server="localhost";
$database="MaBase";
$mysql_user="monnom";
$mysql_pwd="monpasse";
$i=0;

While ($i<=$file_count AND $ext==0)
                      {
                      try
                                {
                                $link = new PDO('mysql:host='.$server.';dbname='.$database.'', $mysql_user, $mysql_pwd);
                                echo "avant connexion<br>";
                                $stml = $link->prepare('INSERT INTO db_photo (evenement, file_name, repertoire, lieu, date, taille, user_name) VALUES (:evenement, :lieu, :date, :taille, :user_name)');

                                echo "connexion<br>";

				$stmt->execute(array(
                                'evenement' => $Evenement,
                                'file_name' => $File_name[$i],
                                'repertoire' => $Repertoire,
                                'lieu' => $Lieu,
                                'date' => $Date,
                                'size' => $Taille[$i],
                                'user_name' => $User_name));

                               echo "fin Mysql<br>";

                                }
                        catch (Exception $e)
                                {
                                echo "Erreur de connexion Mysql<br>";
                                Exit ('Erreur : '.$e->getMessage());
                                }
                        $stmt->closeCursor();
                        $i++;
                        }

Dernière modification par gboul (Le 01/05/2017, à 22:46)

Hors ligne

#2 Le 01/05/2017, à 17:44

krodelabestiole

Re : [RESOLU] Mysql & Php connexion arrêtée intempestivement

$stmt->execute

elle sort d'où ta variable $stmt ?
ce qui est définit avant c'est $stml ...

Puis plus rien. Le script s'arrête.

il y a fort à parier que l'affichage des erreurs est désactivé, ce qui ne facilite vraiment pas le travail de développement / debug.

tu peux essayer d'ajouter

error_reporting(E_ALL);

au début du fichier (après <?php ).

Hors ligne

#3 Le 01/05/2017, à 22:36

gboul

Re : [RESOLU] Mysql & Php connexion arrêtée intempestivement

krodelabestiole a écrit :
$stmt->execute

elle sort d'où ta variable $stmt ?
ce qui est définit avant c'est $stml ...

Effectivement, ça marche beaucoup mieux avec la bonne variable, c'est dingue!
Merci beaucoup.

krodelabestiole a écrit :
gboul a écrit :

Puis plus rien. Le script s'arrête.

il y a fort à parier que l'affichage des erreurs est désactivé, ce qui ne facilite vraiment pas le travail de développement / debug.

tu peux essayer d'ajouter

error_reporting(E_ALL);

au début du fichier (après <?php ).

J'ai essayé d'ajouter

error_reporting(E_ALL);

, avant de modifier la variable et rien n'est apparu comme erreur.

En tout cas, merci beaucoup pour ton aide, je cherchais depuis déjà plusieurs jours.
Je vais clore le sujet.

Hors ligne

#4 Le 02/05/2017, à 01:01

krodelabestiole

Re : [RESOLU] Mysql & Php connexion arrêtée intempestivement

peut-être que display_error est désactivé. essaye avec les 2 lignes :

error_reporting(E_ALL);
ini_set('display_errors', 1);

sinon jette un œil à ton php.ini (probablement /etc/php/7.0/apache2/php.ini si tu utilises apache) : c'est là que ces paramètres sont définis globalement.

Hors ligne