Bonjour,
Voila, j'essaye de inserer un contenu d'un formulaire avec json_encode dans la base de donnée, et malheuresement j'ai une erreur dont je n'arrive pas réelement à la comprendre. D'après, se que je comprend, c'est que la chaine est trop grande (1084367)
Actuellement, je ne le fait pas propre car ce sont juste des testes.
$a = array(
"fr" => $_POST["input_sec"],
"en" => $_POST["input_sec"]
);
$host = "localhost";
$username = "root";
$password = "";
$dbname = "dd";
try
{
$bdd = new PDO('mysql:host='.$host.';dbname='.$dbname.';charset=utf8', $username, $password);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
var_dump(json_encode($a));
$req = $bdd->prepare("INSERT INTO `Presentation`(`active`, `content`, `last_update`) VALUES (:active, :content, NOW())");
$req->execute(array(
":active" => 1,
":content" => json_encode($a)
));
$req->closeCursor();
Je pense que le code est facilement compréhensible ;)
Je voudrais pouvoir inserer sans problème ;)
Une joli erreur :
Non tu peux pas retirer cette limite, et la valeur maximum est 1073741824 (1GB)
Tu peux tenter de lancer une requête mysql du type : SET GLOBAL max_allowed_packet=xxx en début de page si tu ne veux/peux pas modifier ta configuration mysql
envoie le code complet car ça ressemble à un boucle for while ou foreach qui n'est pas interrompu
Bas, le seul autre code, est le html et un peu de js pour que le bouton submit fonctionne avec le contenteditable.
c'est ta fonction Json encode qui se plante, essaie juste dans un premier temps d'envoyer en serialize plutot qu'en json, voir comment réagit ton script. mais je pense que ton soucis réelle vient de se que tu essaie d'encoder, ou de ton serveur qui a un loup
JSONENCODE on line35
j'ai l'impression que ta pdo a du patienter trop longtemps et t'a répondu occupé.
En changant le max_allowed_packet j'ai plus réellement ce problème. Donc, je pense que ça vien bien de la chaîne de caractère.