Adams’ Inn
America’s Best Inn
db テーブルに格納されていると仮定 しますestablishment
Adams’ Inn
America’s Best Inn
変数をチェックインする必要 があります$EstablishmentName
$stmt = $sql->prepare("SELECT ID FROM `establishment` WHERE Name=? LIMIT 1");
$stmt->bind_param("s",$EstablishmentName);
$stmt->execute();
$stmt->store_result();
print $stmt->num_rows;
問題は、それらが見つからないことです。
出力 0
else で囲まれ$EstablishmentName
ていることに注意mb_convert_string($EstablishmentName,'HTML-ENTITIES')
してください。エラーが発生しますIllegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
更新:set_charset('utf8')
クライアント側に使用します。テーブルの文字セットは utf8 で、照合はutf8_general_ci
. テキストは、元のテキストと同じようにエンコードされます。次の DB マネージャーを使用しています: SQLyog と PHPMyAdmin。
更新 #2:スクリーンショットを添付して、正しい文字セットを伝えていることを確認してください。
私が使う$sql->set_charset('utf-8');
配列 ( [BrandName] => アメリカズ ベスト バリュー イン [試行1] => 1 ) 配列 ( [ブランド名] => アダムズ イン [試行 1] => 0 ) 配列 ( [ブランド名] => アンバサダー イン アンド スイーツ [試行1] => 1 ) 配列 ( [ブランド名] => アンバーリー スイート ホテル [試行1] => 1 ) 配列 ( [BrandName] => アメリカズ ベスト バリュー イン [試行 1] => 0 )
更新 #3わかりました、申し訳ありません。列Name
は でしたlatin1_swedish_ci
。
コラムを更新しましたName
:
ALTER TABLE establishment MODIFY NAME VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_general_ci;
これはmb_convert_string()
now なしで機能するはずです。