2016-11-28 5 views
1

たとえば、次のようなデータベースからUTF-8文字を取得することはできますが、何らかの理由でデータベースに挿入することはできません。šのみデータベースに挿入します。 ?として挿入されます。MySQLプリペアドステートメントでUTF-8文字を挿入することはできません

<?php 
    $GLOBALS['mysqli'] = new mysqli("...", "...", "...", "..."); 

    $stmt = $GLOBALS['mysqli'] -> prepare("SET NAMES 'utf8'"); 
    $stmt->execute(); 
?> 

そして、このコードを介してデータを挿入:

$linkName = $_POST['linkName']; 

$stmt = $GLOBALS['mysqli'] -> prepare 
(" 
    INSERT INTO NavigationLinks (linkName, fileName, iconExt) 
    VALUES (?, ?, ?) 
"); 

$stmt->bind_param("sss", $linkName, $fileName, $iconExt); 
$stmt->execute(); 
$stmt->close(); 

私はecho $linkNameに試したし、それが正しい文字を出力に挿入する前に、私は、このファイルを介して自分のデータベースに接続しています。

+0

値を挿入しようとしているmysql列のデータ型は何ですか? –

+0

挿入するテーブル/列のエンコード/照合とは何ですか? utf8mb4を使って、これを行うことができます(MySQL 5.5) – jcorry

+0

'$ GLOBALS ['mysqli'] - > set_charset( 'utf8');'そしてあなたのテーブルの文字セットをチェックしてください。 – Qirel

答えて

1

UTF8データを追加するテーブルと列に対して、UTF8エンコード/照合を使用します。

関連する問題