1

ユーザー名、パスワード、メッセージを入力すると、次の列を使用してmysqlに挿入される小さなミニ登録フォームが完成しました。

username    password    id  message date    time    country recover_id

そしてこれらは意味します:

ID = a random generated ID, for later use.

Time = Time of creation
Date = date of creation
Country = empty, later use..

Recover_id = the ID of the registration.

登録後、私はこれを行います:

        // Let's store these into a session now.
        $username = $_SESSION['user'];
        $password = $_SESSION['pass'];

        //Now let's refresh the page, to a different header.
        header('Location: recover.php?recovery=success');
    }

ユーザー名を保存してセッションに渡し、新しいヘッダーを作成します。

その後

} 
else if (isset($_GET['recovery']) && $_GET['recovery'] == 'success') 
{
    $fetch = $connect->query("SELECT * FROM users WHERE username = ':username' LIMIT 1");
    $fetch->bindValue(':username', $_SESSION['user']);
    $fetch->execute();

    while($row = mysql_fetch_array($fetch)) {
    echo $row['recover_id'];
    }
}

指定されたユーザー名列に移動して、recovery_idやID自体などの情報を取得したいと思います。

しかし、これはしません

Warning: mysql_fetch_array() expects parameter 1 to be resource, object given in C:\xampp\htdocs\recover\recover.php on line 103

私は私が何か間違ったことをしていることを知っていますが、何ですか?ありがとう!

4

1 に答える 1

1

を使用しているので(非常に良い仕事です=))、関数を呼び出すことはできませんmysql_*

fetch()代わりにPDOの方法を使用してください。

while($row = $fetch->fetch( PDO::FETCH_ASSOC ) ) {
    echo $row['recover_id'];
}

PDO::FETCH_ASSOC名前付きインデックスを使用してデータを取得できるようにするには、パラメータとして渡す必要があります。

于 2013-03-23T01:42:35.093 に答える