Adams’ Inn America’s Best Inndb テーブルに格納されていると仮定 します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 なしで機能するはずです。