Laravel 5

SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE3\xAEt'

  • Avatar de InsaneBobby
    Membre depuis :
    04/10/2018
    Messages :
    11

    Bonjour à tous,

    Je recontre un problème sur un Update SQL, malgrès mes recherches et test de différentes solutions j'ai toujours cette erreur : SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xE3\xAEt'.
    Cela correspond à input qui à la valeur Benoît .

    Avez vous déja rencontrer ce problème et avez vous une solution ?

    Merci

    Ma base de données est gérée par MAMP en local.

    Voici le code de mon controller

    public function UpdateProfil(ProfilFormRequest $request)
    {
    $user = Auth::user();
    $user->lastname =$request->lastname;
    $user->firstname =$request->firstname;
    $user->nickname =$request->nickname;

    if (!empty($request->password)){
    $user->password = Hash::make($request->password);
    }

    $user->save();
    flash('Votre profil a bien été mis à jour')->success()->important();
    return redirect('profil');
    }

    Et mon fichier database.php

    'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
    ],
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2274

    Salut,

    Quel est le codage des caractères de la base ?

  • Avatar de InsaneBobby
    Membre depuis :
    04/10/2018
    Messages :
    11

    Salut,

    Voici les infos de ma BDD :
    Encodage : UTF-8 Unicode (utf8)
    Collation : utf8_unicode_ci

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2274

    Est-ce qu'il y a un traitement des attributs dans le modèle User ? Genre mutateur ?

    C'est quelle version de MySQL ?

  • Avatar de InsaneBobby
    Membre depuis :
    04/10/2018
    Messages :
    11

    Ah oui merci c'est bien les mutateurs qui sont la cause, mais je ne vois pas bien le problème

    public function setFirstnameAttribute($value)
    {
    $this->attributes['firstname'] = ucfirst(strtolower($value));
    }

    public function setLastnameAttribute($value)
    {
    $this->attributes['lastname'] = strtoupper($value);
    }
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2274

    Utilise mb_strtoupper à la place de strtoupper et mb_strtolower à la place de strtolower.

  • Avatar de InsaneBobby
    Membre depuis :
    04/10/2018
    Messages :
    11

    Top çà fonctionne. Merci ;-)

Vous ne pouvez pas répondre à ce sujet.