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
に試したし、それが正しい文字を出力に挿入する前に、私は、このファイルを介して自分のデータベースに接続しています。
値を挿入しようとしているmysql列のデータ型は何ですか? –
挿入するテーブル/列のエンコード/照合とは何ですか? utf8mb4を使って、これを行うことができます(MySQL 5.5) – jcorry
'$ GLOBALS ['mysqli'] - > set_charset( 'utf8');'そしてあなたのテーブルの文字セットをチェックしてください。 – Qirel