下記のようなプログラムを作っていて、検索キーワードにマッチしたレコード数を表示したいと考えております。
$st = $pdo->prepare($hoge);
$st->execute();
$reccnt=$st->rowCount();
echo '<p>検索結果:'.$reccnt.'件</p>';
nameというカラムがあり、そこには商品名を格納しております。
「あいうえお2000グラム」などの名前です。
Likeを使って日本語検索をするとうまくヒットしません。
SELECT * FROM products WHERE name LIKE '%2000%' → OK
SELECT * FROM products WHERE name LIKE '%2000グラム%' → NG
SELECT * FROM products WHERE name LIKE '%あいうえお%' → NG
XAMPP内のMysqからSQL文を直接入力した場合、ちゃんと表示することができました。
詳しい方がいらっしゃいましたら、ご助言をいただけないでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>character_set_database latin1
MySQLの設定ファイルmy.cnfの編集権はありますか?
[mysqld]セクションに
character-set-server = utf8を記載したり
[mysql]セクションに
default-character-set=utf8を記載したり
した上で、mysqldを再起動してみてください
ご回答いただきありがとうございます!
教えていただいた通り、my.cnfファイルに追加してみましたが上手くいきませんでした。データベースを削除、再作成をしたら無事に上手くいきました。お騒がせして申し訳ありませんでした・・・。
No.1
- 回答日時:
MySQL内とプログラム側の内部文字コードが違うのでしょう
MySQL側で「SHOW VARIABLES LIKE 'character\_set\_%';」を、
PHP側で「print mb_internal_encoding();」を
それぞれ実行し、文字コードの差異がないか確認してみてください
ご回答いただきありがとうございます!
PHP側で「print mb_internal_encoding();」はUTF-8と表示されたのですが、Mysql側ではこのように表示されました。
Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database latin1
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin1
character_set_system utf8
この「character_set_database latin1」に問題があるのではないかと勝手に思っているのですが、どうなんでしょうか。また、これが問題だった場合はどのようにして変更すればいいのでしょうか。
質問ばかりで申し訳ありませんが、ご助言をいただけないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- PHP PHP MySql ページング 2 2022/09/20 06:38
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL 下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「名前(first name) 1 2023/06/24 13:03
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- TOEFL・TOEIC・英語検定 英検3級のライティングに関して質問があります。 定型パターンを何個か覚えておこうと考え下記を見つけま 6 2022/08/28 06:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MYSQLで日本語が入力できない
-
php・Mysql Like文で日本語が使...
-
接続ができません
-
シングルクォーテーションとダ...
-
副問合せにLIKE文を使う方法は...
-
phpAdminを導入したのですが。
-
旧filemakerで和暦(令和など)...
-
ERROR 1045 (28000) (using pas...
-
like句を使って日本語を検索す...
-
VBAで変数内に保持された二次配...
-
ACCESSとXサーバーをODBCで接続...
-
二進数を勉強しているのですが...
-
SQLのVARCHARとVARCHAR2の違い
-
mysql(mariaDB)の格納文字数は...
-
INT型は金額の型に使用するべき...
-
経過時間(hhmmdd)をDATE型には...
-
MySQLにリモートホストから接続...
-
mysql_real_escape_string?
-
PHPでMySQLテーブルロック一覧取得
-
テーブル作成でエラーが出てき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
さくらのレンタルサーバで文字...
-
php・Mysql Like文で日本語が使...
-
DB内の日本語データがPHPで取得...
-
MYSQLで日本語が入力できない
-
UTF-8にしても文字化けが直らない
-
cseデータ閲覧時の文字化け
-
Mysqlの文字化けについて
-
日本語をinsert時に文字化け
-
設定が間違っていないのに文字...
-
検索で濁点や半濁点をヒットさ...
-
データの移行について
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
-
ODP.NETのバージョン確認
-
ERROR 1045 (28000) (using pas...
-
like句を使って日本語を検索す...
-
VBAで変数内に保持された二次配...
-
MySQLカラム名は日本語と英数字...
-
INT型は金額の型に使用するべき...
おすすめ情報