dポイントプレゼントキャンペーン実施中!

DB関連が苦手な上、動作がうまくいかず、アドバイスをいただければと存じます。現在PHP4、MYSQL4.1.20を使用しております。

行いたい処理は、
PEAR::DBで実行したクエリ
SELECT MAX(id) FROM table WHERE `name` = '$test';
等で、whereで一致する行を絞込み、そのうちの最大値のIDを取得
(クエリの動作は、MYSQL単体で行った場合問題なしで、idの値を取得)

その後MAX()で取得した1つIDを、$resultに代入したいのですが、どの様に行えばよいのかわかりません。
今までfetchRow()で事足りていたことで、他の関数がわかりません><
$result=$DB->getOne("SELECT MAX(id) FROM table WHERE `name` = '$test';");
といった感じで取得するのが良いのかも知れませんが、うまく取得できずに詰まっておりますorz

解決法、アイデア等ございましたら、お伺いできればと存じます。
上記ソースは、質問させていただく上で、新規に書いたソースですので、カラム名、変数は仮のものです。不明な情報等ございましたら、捕捉させていただきたいと存じます。

A 回答 (2件)

こんな感じではダメでしょうか



$stt = $db->prepare(" select max(id) as id_max from table where name = ? ");

$rs = $db->execute($stt , $test);
while($row = $rs->fetchRow(DB_FETCHMODE_ASSOC)) {
$id_max = $row["id_max"];
}

echo($id_max);
    • good
    • 0

$resultに何が返ってきているかを見ると糸口が見えるかもしれません。



$resultの次あたりに以下の文を入れて表示されるメッセージを確認してみてください。

---<以下ソース>---
if(PEAR::isError($result)) {
print_r("Error: " . $result->getMessage());
} else {
print("Success:"); var_dump($result);
}
------------------
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!