The site is written in PHP. Connection to the database on the server (debian 9) occurs as follows:
$sqlConnect = $wo['sqlConnect'] = mysqli_connect ($sql_db_host, $sql_db_user, $sql_db_pass, $sql_db_name, 3306);
On the server in the mySQL (1) database, table names have upper-cases (example: Wo_Langs). My localhost is on windows 7 and it does not support case sensetive. When I import a database from server (1) to localhost, all upper-cases in the table names are replaced with low-cases (example: table name Wo_Langs -> wo_langs). After making changes to the database on localhost when importing the database from localhost (2) to the server in the server database (2), all table names are obtained in low-cases. The technical support of the hosting assured me that they had set lower_case_table_names = 0 in the settings of mySQL server. But anyway, when renaming the table name Wo_Langs -> wo_langs, the data from the table is not displayed on the site.
2
Answers
You have to change the case in the php code as well where you are creating queries to manage CRUD operations. Change to case which matches your actual table column names from you environment Windows, Linux….
Debian (and linux in general) use filesystems that are case sensitive. MySQL database name is “mapped” to directory name where all the table files are stored on the server while table name is also name of table related files (usually stored in
/var/lib/mysql/<DATABASE>
or so). So to solve your problem you should stay away from using mixed case names (for both tables and databases). You may try to a) rename all the files and directories – as suggested to all lowercase names (and maybe restartmysqld
) and update your code to use the exactly the same, lowercased references to your tables and databases.