Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

German Umlauts in MYSQL INSERT

Tags:

php

mysql

I have a problem with my mysql insert statement. I have a form which is submitting utf-8 characters correctly to the insert file (i've checked the POST vars).

Now when i look after the INSERT in my DB, there are no umlauts, but question marks.

The error must be right before the insert statement.

If i output (manually entered) content from my DB, umlauts are correctly displayed.

// echo $_POST["title"];
// outputs correctly with special chars: "Some german title with umlaute ä ö ü"

mysql_query("INSERT INTO videos (youtube_hash, title, description, category, created) VALUES ('".mysql_real_escape_string($_POST["hash"])."', '".mysql_real_escape_string($_POST["title"])."', '".mysql_real_escape_string($_POST["desc"])."', '".mysql_real_escape_string($_POST["cat"])."', '".time()."')") or die(mysql_error());

// database entry looks like this: "Some german title with umlaute ? ? ?"

I hope anyone can help me out in this :)

EDIT:

htmlentities() did the job!

like image 303
DonCroce Avatar asked May 12 '11 21:05

DonCroce


2 Answers

When you insert your data from php into your mysql database try wrapping your string data using utf8_decode();

utf8_decode(string)

As the php manual says this converts utf8 to ISO-8859-1 (latin1);

You might also want to experiment with the iconv() function. This gives you more choice of your input encoding and desired output encoding

string iconv ( string $in_charset , string $out_charset , string $str )

If that still doesn't help try change the Collation on the Mysql table column that you are inserting into, to latin1_swedish_ci.

like image 150
Nischal Bachu Avatar answered Sep 22 '22 16:09

Nischal Bachu


Using HTML entities isn't the nicest solution to your problem. Ideally you should be storing data in the database and only using htmlentities() for display purposes. What if you ever wanted to display/export this data in some other way than in HTML.

I'd recommend reading up on character set handling in PHP/MySQL. Here's an article I wrote recently: How to Avoid Character Encoding Problems in PHP

Post up again if you're still having problems.

like image 30
James C Avatar answered Sep 24 '22 16:09

James C