0

私はphpのoopをよりよく理解するためにチュートリアルに従ってきましたが、つまずきのブロックに遭遇しました。新しく、すぐに多くのことを学ぼうとしています。先に進む前に何が起こっているのか知りたいです。

以下は、users_email を選択する前に、users_username の下に '、および別の ' が必要な理由を除けば、私が理解しているコードです。最初はそれらを分離する方法だと思ったので、テストとしてそれらを削除すると、エラーが返されました: Trying to get property of non-object。だから私はそれらを削除することで、オブジェクトとして作成されている名前を何らかの形で停止していると推測していますか? または、私は的外れです。

"SELECT CONCAT(users_username,
                        ',
                        ',
                        users_email)
                        AS name,
          DATE_FORMAT(users_joined, '%M %d, %Y') AS dr
          FROM users
          ORDER BY users_joined
          ASC";

    $r = $mySqli->query($q);//run the query

    $num = $r->num_rows;//assign the number of rows

    if($num > 0){//if there are members in the database

        echo '<p>There are currently ' . $num . ' members registered.</p>' . "\n";

        while($row = $r->fetch_object()){

            echo $row->name . ' ' . $row->dr . "<br/>";

        }
    }

これが以前に何度も尋ねられた場合は申し訳ありませんが、この質問を検索する方法がわかりませんでした。

4

1 に答える 1

0

CONCAT(users_username, ',',users_email) が行っているのは、users_username にコンマを追加してから、users_email を追加することです。したがって、users_username が bob で、users_email が bob@example.com の場合、「bob,bob@example.com」が返されます。

一重引用符を削除すると、それは単なる CONCAT(users_username,,,users_email) になり、PHP はコンマの間に何もないことを好まない可能性があります。この場合、クエリは失敗し、$row に対して NULL を返す可能性があります。$row->name を実行すると、$row の name プロパティを取得しようとしますが、$row は NULL であるため、プロパティはありません。

于 2012-09-29T20:41:05.627 に答える