ここから本文です

phpでmysql内テーブル(xxx_tb)の「id」フィールドの最大値を習得し、表示したいと...

ysi********さん

2014/6/601:26:12

phpでmysql内テーブル(xxx_tb)の「id」フィールドの最大値を習得し、表示したいと考えています。

$max = "select MAX(id) FROM xxx_tb";
$res = mysql_query($max);

今回習得したいのは、「id」(int)。

これをechoで表示しようとすると、Resource id #4となってしまいます。

「id」の中の最大値を習得し、表示したいのですが、どうしたらよいでしょうか?
教えてください。お願いいたします。

閲覧数:
2,634
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

ryo********さん

2014/6/602:36:19

mysql_query関数は結果セットを「リソース」として取得するだけです。リソースから更に「文字列」として取り出すにはmysql_fetch_array関数などを使う必要があります。

$result = mysql_query("SELECT MAX(id) FROM xxx_tb");
$max = current(mysql_fetch_row($result));

しかし、「mysql_*」に名前が該当する手続き型の旧式の関数は全て非推奨とされています。セキュリティや例外処理の面でさまざまな問題を抱えているからです。現在はPDOクラスやmysqliクラスが主に用いられます。個人的には前者の方がオススメです。

PHP Manual - PHP Data Objects
http://www.php.net/manual/ja/book.pdo.php

PHP Manual - MySQL 改良版拡張モジュール
http://www.php.net/manual/ja/book.mysqli.php

最後に紹介する記事を読むにあたっての前置きとして、以下の2つを先に紹介します。おそらく「オブジェクト指向」は未経験だろうと思うので、ここで感覚に慣れておいてください。

Qiita - $_GET, $_POSTなどを受け取る際の処理
http://qiita.com/mpyw/items/2f9955db1c02eeef43ea

Qiita - PHPオブジェクト指向入門
http://qiita.com/mpyw/items/41230bec5c02142ae691

大雑把に上記2つの記事の内容が頭に入ったあとに以下の記事をご覧ください。

Qiita - PHPでデータベースに接続するときのまとめ
http://qiita.com/mpyw/items/b00b72c5c95aac573b71

PDOで書きなおすと最初の例はこうなります。
($pdoにPDOのインスタンスが代入済みであると仮定します)

$max = $pdo->query("SELECT MAX(id) FROM xxx_tb")->fetchColumn();

「->」で流れるように書けるので美しいですね。

質問した人からのコメント

2014/6/6 23:44:27

ありがとうございます。
大変参考になりました。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる