2016-05-12 22 views
0

私はjoomlaデータベースを持っています。ここでは、mySQL接続照合はutf8_general_ciです。 PHPスクリプトのデータを取り込もうとするデータベースに、(joomlaのインストールに関係しない)いくつかの追加データテーブルがあります。データベースに特殊文字を挿入する

LATER編集:私は(言語と地域固有の文字)特殊文字を挿入しようとしたとき、私はîăîșE>代わりîăîşţのように、データベースにjibberishを取得

下に確認してください

Joomlaのデータベース内のすべての列の照合は次のとおりです。utf8mb4_unicode_ci(これはどんな違いがあれば)

奇妙なことがあれば、私は、電子メール/モバイルアプリでのデータベースの内容を示すことであり、 (ブラウザベース)、データを正しく表示します。しかし、phpmyadminパネルから手動で挿入すると、その値がテーブルに正しく表示されるため、PHPからvalusを挿入するのは適切ではないことがわかります。

<?php header('Content-type: text/html; charset=UTF-8'); //header is specified here 

$value_to_insert = addslashes($_REQUEST['value']); //get the value from the parameter 

inserttask($value_to_insert); //insert the value into the datatable 

function inserttask($value_to_insert) 
{ 
    $con = mysqli_connect("host",username,password,database); //set up my mysqli connection 
    //mysql_set_charset('utf8'); //this didn't help 

    if (!$con) 
    { 
     die(); 
    } 

    $sql = "INSERT INTO `table` (`value`) VALUES ('".mysqli_real_escape_string($con, $value_to_insert)."')"; 

    if($result=mysqli_query($con,$sql)) 
    { 
     print "OK"; 
    } 
    else 
    { 
     print "ERROR"; 
    } 
} 

?> 

このインサートは、任意の領域dependend文字と互換性を持たせるために、なされるべきであるか任意のアイデア?

その後編集: 私は、 " '%照合%' のようなショーの変数" を走った collat​​ion_connectionの - utf8_general_ci collat​​ion_database - latin1_swedish_ci collat​​ion_server - latin1_swedish_ci

これが問題だろうか?

+0

mysql_set_charset( 'utf8mb4')を試したことがありますか。 '? – GertG

+0

はい。そして私が次のことをするならば:mysqli_set_charset( 'utf8'); $ con-> character_set_name();を出力します。それはutf8の代わりに "Latin1"を出力します – Laureant

答えて

0

接続を設定したら、接続文字セットを特定の方法で変更する必要がありました。

$con = mysqli_connect("mydb12.surf-town.net","bosteen_licadm","Ugymate92","bosteen_p2p"); 

$con->set_charset("utf8"); 

この後、挿入物が機能します!

関連する問題