Bonjour, J'essaie de stoker mon fichier video dans le champ blob, après execution il y a ce code d'erreur qui s'affiche: Array ( [0] => HY000 [1] => 2006 [2] => MySQL server has gone away ) 1
aider moi svp voici mon code:
<?php
session_start();
require_once('config.php');
if(isset($_POST['publier']))
{
if($_FILES['fichier'] AND $_FILES['fichier']['error']==0)
{
$nom=htmlspecialchars($_FILES['fichier']['name']);
$titre=htmlspecialchars($_POST['titre']);
$type=strrchr($nom,'.');
$extention=array('.pdf','.mp4','.msi','.flv','.3gp');
$fichier=addslashes(file_get_contents($_FILES['fichier']['tmp_name']));
$taille=$_FILES['fichier']['size'];
if(in_array($type,$extention))
{
if(isset($_POST['type']) and isset($_POST['categorie']))
{
if($_POST['type']=='video')
{
//insertion dans la table fichier_video
if($_POST['categorie']=='programmation')
{
$categorie="programmation";
$insert=$bdd->prepare('insert into fichier_video(nom,titre,type,categorie,video,taille) value(?,?,?,?,?,?)') or die(print_r($bdd->errorinfo()));
$insert->execute(array($nom,$titre,$type,$categorie,$fichier,$taille)) or die(print_r($insert->errorinfo()));
//insertion de la date dans la table poster
$insert=$bdd->exec('insert into poster(date_ajout) value(CURDATE())') or die(print_r($bdd->errorinfo()));
}
elseif($_POST['categorie']=='reseau')
{
$categorie="reseau";
$insert=$bdd->prepare('insert into fichier_video(nom,titre,type,categorie,video,taille) value(?,?,?,?,?,?)') or die(print_r($bdd->errorinfo()));
$insert->execute(array($nom,$titre,$type,$categorie,$fichie,$taille)) or die(print_r($insert->errorinfo()));
//insertion de la date dans la table poster
$insert=$bdd->exec('insert into poster(date_ajout) value(CURDATE())') or die(print_r($bdd->errorinfo()));
}
elseif($_POST['categorie']=='autres')
{
$categorie="autre";
$insert=$bdd->prepare('insert into fichier_video(nom,titre,type,categorie,video,taille) value(?,?,?,?,?,?)') or die(print_r($bdd->errorinfo()));
$insert->execute(array($nom,$titre,$type,$categorie,$fichier,$taille)) or die(print_r($insert->errorinfo()));
//insertion de la date dans la table poster
$insert=$bdd->exec('insert into poster(date_ajout) value(CURDATE())') or die(print_r($bdd->errorinfo()));
}
}
}
}
else{
?>
<style>
.erreur_type {
height: 50px;
background-color: crimson;
color: white;
text-align: center;
font-size: 20px;
text-decoration-line: underline;
}
</style>
<div class="erreur_type">
<?php echo'Erreur de type de fichier'.'<br/>'.'Ressayez svp '.$_SESSION['pseudo'];?>
</div>
<?php
include('../templets/envoiefichier.php');
}
}
}
?>
Commence par appliquer ce que je t'ai donné conernant la façon de poster ton code sur le forum ainsi que la façon de l'écrire (gestion des erreurs pdo et erreurs php)
Après on acceptera peut-être de t'aider...
Et puis.. je t'avais déconseillé de stocker directement en blob
Mais vu que tu y tiens tellement... va donc augmenter le
max_allowed_packet de ton mysql. Ca devrait aider à contourner le souci.
Tu ne sais pas chercher sur internet ?
Voila ine solution possible :
Il faut ajouter la ligne ci-dessous dans le fichier my.ini, section [mysqld]
max_allowed_packet=32M
15 août 2018 à 21:17
Mais vu que tu y tiens tellement... va donc augmenter le
max_allowed_packet de ton mysql. Ca devrait aider à contourner le souci.
15 août 2018 à 23:12
Modifié le 15 août 2018 à 23:38
15 août 2018 à 23:43
16 août 2018 à 07:06
Voila ine solution possible :
Il faut ajouter la ligne ci-dessous dans le fichier my.ini, section [mysqld]
max_allowed_packet=32M