SQLSTATE[22007]: недопустимый формат даты и времени: 1366 Неправильное строковое значение, функция html_entity_decode
Я пробовал html_entity_decode, как показано ниже;
//Foreach ($datas from remote db)
$recorded = User::updateOrCreate([
"old_id" => $user->Id,
"username" => $user->UserName,
],[
"old_id" => $user->Id,
"name" => html_entity_decode($user->FullName),
"username" => $user->UserName
]
и это дает мне ошибку, как показано ниже,
SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect string value: '\xE3\xBCseyi...' for
column `database`.`users`.`name` at row 1 (SQL: update `users` set
`name` = hseyin furkan, `users`.`updated_at` = 2021-02-22 18:23:39 where `id` = 2)
Если я не вызываю функцию html_entity_decode , она записывает в столбец типа «hüseyin»
Как я могу это исправить?
Моя таблица:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name')->nullable();
$table->string('username')->nullable();
1 ответ
Решение
Возможно, ваши данные представляют собой набор символов ASCII, а ваш столбец ожидает UTF-8. Можете ли вы попробовать этот код;
mb_convert_encoding(html_entity_decode($user->FullName), "UTF-8")
Если вы используете laravel, вы можете использовать функцию, которая;
$fullname = Str::ascii(html_entity_decode($user->FullName),'tr');