I created an application whith UTF-8 database charset. When creating connection using php I am executing mysqli_query($link, 'SET CHARACTER SET utf8')
.
It was working fine on localhost with both SELECT
, INSERT
etc. I deployed the application on web with some sample data and quickly browsed the page I saw UTF-8 characters nicely.
The next day client called me data is showing like ??????
when I add some record through provided interface I was surprised he was right but On localhost it was working fine.
After some searching I found multiple answers like execute these queries
set character_set_client='utf8'
set character_set_results='utf8'
set collation_connection='utf8_general_ci'
SET NAMES 'utf8'
- and setting then encoding in response etc
None of them worked but this mysqli_set_charset($link, 'utf8')
one.
My Question is
- Why It was working on localhost, and only
INSERT or UPDATE
Query was creating problem after deployment butSELECT
was working fine - What is the difference between
mysqli_set_charset($link, 'utf8')
andmysqli_query($link, 'SET CHARACTER SET utf8')