Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用ñ;存储名称时出错;在拉维尔_Php_Laravel 5 - Fatal编程技术网

Php 使用ñ;存储名称时出错;在拉维尔

Php 使用ñ;存储名称时出错;在拉维尔,php,laravel-5,Php,Laravel 5,当我尝试存储包含“ñ”和“')的记录时,Laravel抛出以下错误: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\xE3\xB1es' for column 'names' at row 1 (SQL: insert into `clients` (`cedula`, `names`, `email`) values (5454545, Pablito Nu�es, email@dominio.

当我尝试存储包含“ñ”和“')的记录时,Laravel抛出以下错误:

SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\xE3\xB1es' for column 'names' at row 1 (SQL: insert into `clients` (`cedula`, `names`, `email`) values (5454545, Pablito Nu�es, email@dominio.com))
数据库采用utf8\u general\u ci以及html格式

我用了这个变异子:

public function setNamesAttribute($value)
    {
        $this->attributes['names'] = strtr($value, 'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ', 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');

    }
但它将其存储为“YA”而不是“n”

关于如何解决这个问题有什么建议吗


ps:我正在使用laragon和Laravel5.4

尝试
utf8mb4
字符集。此外,您需要将连接字符集设置为utf8mb4。因此,将config/database.php中的
'charset'
更改为
'utf8mb4'

'charset' => 'utf8mb4',
例如:

'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', 'localhost'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_general_ci',
    'prefix' => 'pre_',
    'strict' => false,
    'engine' => null,
],

我更新了我的答案,并建议使用
utf8mb4
charset。开始我使用utf8mb4,然后我改为UTF-8。我觉得奇怪的是,它只接受“ñ”而不接受“ñ”