みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

mysql データ取得

db_name = AAA
table_name = BBB

_______
id name
1 tanaka
2 yamada
3 suzuki
_______

上記のidを指定して、
nameを取得するには
どうしたらいいですか?

例)id = 1 を指定して返り値に
  tanakaが代入される

投稿日時 - 2012-04-24 15:09:30

QNo.7438904

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

デバッグするなら

$sql = "select name from BBB where id=1";
$res = mysql_quer($sql,$$link) or die(mysql_error());

とします。
$resはリソースを返すのでそれ自体をprintしてもあまり意味がありません。

投稿日時 - 2012-04-24 23:53:51

ANo.3

mysql_error($接続)
これでエラーの理由が分かるはずですけど、
何か表示されませんでしたか?

投稿日時 - 2012-04-24 21:34:58

ANo.2

DBにアクセスするには次の手順が必要です。
(1)DBサーバに接続する。
(2)データベースを選択する。
(3)クエリを実行する。
(4)フェッチする。
(5)フィールドの値を読み込む。

掲題だと、いきなり(3)のクエリを実行
しているし、(4)と(5)飛ばして値は取得
できません。第一、mysql_queryに接続
オブジェクトが指定されてないので、
成功するはずありません。

$接続 = mysql_connect($サーバ,$ユーザ,$パスワード)
if ( !$接続 ) {
  //接続できない時の処理
  print("接続できません");
  return "";
}
if ( !mysql_select_db("AAA",$接続) ) {
  //DBが選択できない時の処理
  print(mysql_error($接続));
  mysql_close($接続);
  return "";
}
$sql = "select name from BBB where id=1";
$結果セット = mysql_quer($sql,$接続);
if ( !結果セット ) {
  //クエリが失敗した時の処理
  print(mysql_error($接続));
  mysql_close($接続);
  return "";
}
$氏名 = "";
$レコード = mysql_fetch_object($結果セット);
if ( $レコード != FALSE ) {
  $氏名 = $レコード->name;
}
mysql_free_result($結果セット);
mysql_close($接続);
return $氏名;

★サーバ、ユーザ、パスワードは
然るべき内容を設定してください。

※サンプルはインデントに漢字空白を
使っています。コピペするとエラーに
なります。

投稿日時 - 2012-04-24 17:17:58

お礼

$sql = "select name from BBB where id=1";
$結果セット = mysql_quer($sql,$接続);
if ( !結果セット ) {
  //クエリが失敗した時の処理
  print(mysql_error($接続));
  mysql_close($接続);
  return "";
}

いろいろと省きましたが
一応この通りにかけていますが、
上記の部分でFALSEが返ってきます。

mysqlそのものにsql文を実行すると
欲しい値が表示されています。
何故でしょうか?

投稿日時 - 2012-04-24 17:27:00

ANo.1

DB AAAに接続後、
select name from BBB where id = '1';

投稿日時 - 2012-04-24 15:17:20

お礼

$a = mysql_query("select name from BBB where id = '1'");

やってみましたが、booleanで0が
$aに入りました。
$aにtanakaを入れるにはどうしたら
いいでしょうか?

投稿日時 - 2012-04-24 16:25:30

あなたにオススメの質問