Boa tarde a todos do fórum,
provavelmente muitos estão com problema com esta situação do utf8mb4 haja vista que os emojis são amplamente utilizados hoje em dia e praticamente absolutos em mensagens de celular, notificações, etc. Sabemos também que a Netmake não tem um histórico de agilidade e então eu presumo que este bug irá perdurar ainda algum tempo. Isto posto, criei um workaround para meus projetos que vou compartilhar com vocês. Fiz assim:
-
Crie uma conexão da forma clássica (php) no onload das apps (tentei criar como variável de sessão mas deu alguns problemas, então…). Assim:
[link] = mysqli_connect($db_server, $db_user, $db_pass);
mysqli_select_db([link],);
mysqli_query([link],‘SET NAMES utf8mb4’);
mysqli_query([link],‘SET character_set_connection=utf8mb4’);
mysqli_query([link],‘SET character_set_client=utf8mb4’);
mysqli_query([link],‘SET character_set_results=utf8mb4’);
-
Esta conexão pode ser tranquilamente referenciada em toda a app… então, para uma query, podemos chamar:
$result = mysqli_query([link],$sql)
Para um app grid por exemplo, colocamos no “on record” para substituir os registros originais lidos da tabela:
$sql = "select * from whatsAppClassifiersTraining where id = " . {id};
if ($result = mysqli_query([link],$sql)){
if ($result->num_rows > 0){
if ($row = mysqli_fetch_assoc($result)){
{textContent} = $row[“textContent”];
}
}
}
Para gravar novos registros, podemos usar um app controle, usando a mesma técnica em on_validate ou qualquer botão de comando. Infelizmente, para grids editáveis não consegui fazer algo consistente - aparentemente os eventos adicionais on_update, on_refresh, etc… disparam algo adicional que atrapalha a interceptação dos dados fora de formatação.
Basicamente é isso. Espero que a Netmake conserte isso logo mas enquanto isso, taí a solução. Espero ter ajudado alguém.
Abc