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());
}

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2014/09/17 17:29:23
  • 終了:2014/09/17 17:45:38

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4412ベストアンサー獲得回数18032014/09/17 17:40:32

ポイント100pt

下の方が、試したコードそのままだとしたら、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

他1件のコメントを見る
id:wsapp

ありがとうございますm(_ _)m
無事取得できました。

2014/09/17 17:45:28
id:wsapp

あっという間に解決しました。
助かります(^^)/

2014/09/17 17:49:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません