URL: https://linuxfr.org/forums/programmation-php/posts/resolu-php7-3-et-mariadb-gestion-des-erreurs-de-longueur-des-champs-texte Title: [résolu] PHP7.3 et Mariadb - Gestion des erreurs de longueur des champs texte Authors: 42nodid Date: 2021年01月15日T15:46:54+01:00 License: CC By-SA Tags: debian Score: 2 Bonjour à tous, Preambule : Je ne suis pas développeur php. Je rencontre un soucis avec une vieille appli php5.quelquechose, que je n'ai pas créé, mais que ~~l'on m'a forcé~~ j'ai du adapter pour mettre à jour en php7.0 J'ai donc transformé correctement (je crois) toutes les requêtes en PDO et dans un bloc try/catch, pas trop regardé le reste du code qui est illisible et mal fait ... j'ai juste debogué et corrigé les messages d'Erreurs et Notices PHP puis le serveur a été MAJ en debian stretch donc php7.0 et jusqu'ici tout allait bien. Dernièrement une mise à jour en debian buster (php7.3) et je rencontre ce problème : SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column XXX En effet, dans la base de données, un champ texte est en varchar(120), mais dans le formulaire rien ne limite ce champ. Jusqu'ici, le champ était tronqué sans que ça lève une exception dans php (et sans que les utilisateurs s'en émeuvent). $note = isset($_POST['note']) ? secure_input($_POST['note']):''; // note dans formulaire [...] $q=$pdo->prepare($sql); try {$q->execute(array( 'note'=>$note, ) [...] 1ere question : est-ce normal avec le passage à php7.3 ? Je n'ai rien vu à ce sujet. 2eme question : Quelle est la "bonne" façon de faire pour : soit signaler à l'utilisateur que le texte est trop long, soit le tronquer avant préparation de la requête SQL ?

AltStyle によって変換されたページ (->オリジナル) /