0

私はphpでmysqli prepardクエリを使用しています。コードは次のとおりです。

$retreiveQuery = 'SELECT username, firstname, lastname FROM USERS WHERE username = ?';

if ($getRecords = $con->prepare($retreiveQuery)) {
    $getRecords->bind_param("s", $username);

    $getRecords->execute();        
    $getRecords->bind_result($username, $firstname, $lastname);

echo "<h1>".$username."</h1>
<p><strong>First Name: </strong>".$firstname."
<p><strong>Surname: </strong>".$lastname."
} else {
print_r($con->error);

これはかなり奇妙です。ユーザー名は、表示される唯一のフィールドです。他の列が返されない/バインドされないのはなぜですか?

私が行った場合

SELECT username, firstname, lastname FROM USERS WHERE username = 'test';

データベースに直接アクセスすると、すべてのフィールドが表示され、すべてに有効なデータが含まれます。

4

3 に答える 3

1

あなたは電話する必要があります

$getRecords->fetch();

bind_result() 実際にレコードを取得した後。

ユーザー名は、入力パラメーターとして使用するために既に設定されているため、出力されていました。

于 2009-04-08T21:09:34.710 に答える