[ad_1]
PHP 8 を使用しており、fetch メソッドを使用してデータベースからデータを取得しようとしています。 しかし、何も機能していないようです。
PHP
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $email = $password = $row = ''; if (empty($_POST['email']) || empty($_POST['password'])) { echo "<span>All fileds are required</span>"; } else { $email = $_POST['email']; $password = $_POST['password']; $query = " SELECT email FROM register_user WHERE email =:email"; $statement = $pdo->prepare($query); $statement->bindParam(':email', $email, PDO::PARAM_STR); if($statement->execute()) { $row = $statement->fetch(PDO::FETCH_ASSOC); $firstName = $row['first_name'] ?? ' '; echo $firstName; } else { echo "failed"; } } } ?>
htmlコード
HTML
<section class="form-container"> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST"> <div class="form-filed"> <label for="email">Email:</label> <input type="email" name="email" id="email" placeholder="Enter email"> </div> <div class="form-filed"> <label for="password">Password:</label> <input type="password" name="password" id="password" placeholder="Enter password"> </div> <input type="submit" value="Login" class="btn"> </form> </section>
私が試したこと:
PHP
$firstName = $row['first_name']; echo $firstName;
解決策 1
あなたのコードを見てください:
$query = " SELECT email FROM register_user WHERE email =:email";
これは、”email” という名前の 1 つの列 (できれば 1 つの行) を返します。
したがって、そのデータセットから他の列を要求することはできません!
おそらく、代わりに「first_name」列を取得したいですか? (または、複数の列である可能性が高くなります。)
[ad_2]
コメント