質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

3329閲覧

mysqlクエリで思い通りの値が取れない。

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/04/22 05:32

編集2016/04/22 05:53

//件数カウントクエリ実行
$sql = $pdo->prepare('select count(*) from test_table where clubname = "'.$club.'"');
$sql->execute();

上記のクエリを実行したのですがうまくカウントが取れません。(0が返る)
なぜでしょうか??
$clubの中には"大阪"という文字列が入っています。
開発言語はphpです。

clubnameには都道府県の名前が入っており
予定ではcountされた値0以上が取得される筈です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/22 05:45

データベースにはどのようにデータが格納されていて、「clubname」にどんな値が入っているのか、「○件になるはずなのに0件」となる…のように質問しないと、回答はつきませんよ。
guest

回答1

0

ベストアンサー

シングルでもダブルでも良いとの指摘でしたので、もう一度考えられる問題点を述べます。

php内部のエンコーディングと、MySQL側のエンコーディングは合っているでしょうか。
phpinfo()などでmbstring周りの設定がデータベース側と合っているか、
合っていなければpdo接続時の接続文字列にcharset句を追加するのはいかがでしょうか。
(サーバーにアップロードするphpファイルが勝手に別のエンコーディングに変換されていたりもしないですよね?)

参考:MySQLとPDOの組み合わせでcharsetを指定する - Qiita
http://qiita.com/hiro_y/items/6fabdef669e35e92bdc4


php

1$sql = $pdo->prepare("select count(*) from test_table where clubname = '$club'"); 2$sql->execute();

php

1$sql = <<<EOT 2select count(*) from test_table where clubname = '$club' 3EOT; 4$query = $pdo->prepare($sql); 5$query->execute();

文字列はシングルクォーテーションで囲むんじゃないかな、SQL文の文法として。
シングルとかダブルとかいちいちエスケープ処理するのが面倒なので、
文字列のヒアドキュメントを駆使して書くことが多いです。

参考:ヒアドキュメント
http://php.net/manual/ja/language.types.string.php#language.types.string.syntax.heredoc

投稿2016/04/22 05:59

編集2016/04/22 08:28
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/04/22 08:23

ご指摘ありがとうございます。普段PostgreSQLなもんで。。
退会済みユーザー

退会済みユーザー

2016/04/23 01:44

まさにご指摘の通りでした。 文字エンコーディングするとうまくいきました。 有難う御座いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問