人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP5.5でPDOを始めたばかりです。
解らないことだらけなのですが、以下のコードで上は目的のレコードを拾うのですが、下のほうは返り値が空です。
たぶんreturnの行がまずいような気がしますがどのように書けばいいのかわかりません。
いろいろ自分なりに調べてみますがイマイチ解らずにいます。
よろしくお願いします。

function db_linkpass($pdo, $username, $link_pass){
$stmt = $pdo->prepare("SELECT * FROM user_pre WHERE username = ? AND link_pass = ?");
$stmt->execute(array($username, $link_pass));
return array($stmt->fetchAll(PDO::FETCH_ASSOC), $stmt->rowCount());
}


function db_linkpass($pdo, $username, $link_pass){
$stmt = $pdo->prepare("SELECT * FROM user_pre WHERE username = :username AND link_pass = :link_pass");
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
$stmt->bindParam(':link_pass', $link_pass, PDO::PARAM_STR);
return array($stmt->fetchAll(PDO::FETCH_ASSOC), $stmt->rowCount());
}

●質問者: wsapp
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

下の方が、試したコードそのままだとしたら、execute() が抜けてますよ。

function db_linkpass($pdo, $username, $link_pass){
 $stmt = $pdo->prepare("SELECT * FROM user_pre WHERE username = :username AND link_pass = :link_pass");
 $stmt->bindParam(':username', $username, PDO::PARAM_STR);
 $stmt->bindParam(':link_pass', $link_pass, PDO::PARAM_STR);

 $stmt->execute();/* ※ これ! */

 return array($stmt->fetchAll(PDO::FETCH_ASSOC), $stmt->rowCount());
}

PHP: PDOStatement::bindParam - Manual


wsappさんのコメント
あっ、私なんか勘違いしてます。 早速教えていただいた行を追加してみます。

wsappさんのコメント
ありがとうございますm(_ _)m 無事取得できました。

wsappさんのコメント
あっという間に解決しました。 助かります(^^)/
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ