如何使用php获取一行中的所有数据?
我学习了这个youtube视频教程。它教会了我如何获取用户名并将其发布到如何使用php获取一行中的所有数据?,php,mysqli,Php,Mysqli,我学习了这个youtube视频教程。它教会了我如何获取用户名并将其发布到index.php页面。我想知道如何获取行中的所有数据,而不仅仅是用户名(注意:我使用电子邮件地址作为用户名)。该表有firstname、lastname、电子邮件地址、密码 if (count($errors) == 0) { $password = md5($password); $query = "SELECT * FROM user_info WHERE email_address='$username' AND p
index.php
页面。我想知道如何获取行中的所有数据,而不仅仅是用户名
(注意:我使用电子邮件地址
作为用户名)。该表有firstname、lastname、电子邮件地址、密码
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM user_info WHERE email_address='$username' AND password='$password'";
$result = mysqli_query($db, $query);
if (mysqli_num_rows($result) == 1) {
$_SESSION['email_address'] = $username;
$_SESSION['success'] = "You are now logged in";
header('location: dashboard.php');
} else {
array_push($errors, "Wrong username/password");
}
}
实际上你不是从你的查询中得到用户名,而是从你的帖子中得到的。将查询结果存储到$result
变量中,然后可以使用它访问行
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM user_info WHERE email_address='$username' AND password='$password'";
$result = mysqli_query($db, $query);
while ($row = $result->fetch_assoc()) {
$_SESSION['email_address'] = $row['username'];
//here goes other rows from your DB
//$row['email'];
//$row['other_rows'];
$_SESSION['success'] = "You are now logged in";
header('location: dashboard.php');
} else {
array_push($errors, "Wrong username/password");
}
}
这应该可以做到。您已经从数据库中选择了所有列,因此只需使用它即可
LIMIT 1
确保您只返回一行,并且无论如何都不应返回多行
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM user_info WHERE email_address='$username' AND password='$password' LIMIT 1";
$result = mysqli_query($db, $query);
if(mysqli_num_rows($result) == 1) {
$_SESSION['email_address'] = $result['username'];
$_SESSION['firstname'] = $result['firstname'];
$_SESSION['lastname'] = $result['lastname'];
$_SESSION['success'] = "You are now logged in";
header('location: dashboard.php');
} else {
array_push($errors, "Wrong username/password");
}
}
从php.net关于mysqli\u查询
失败时返回FALSE。为了成功地选择、显示、描述或解释查询,mysqli_query()将返回一个mysqli_结果对象。对于其他成功的查询,mysqli_query()将返回TRUE
您仍然需要将结果提取为关联数组来使用它(例如使用mysqli\u fetch\u assoc
)。数组将列名作为键,列值作为值
if (count($errors) == 0) {
$password = md5($password);
$query = "SELECT * FROM user_info WHERE email_address='$username' AND password='$password'";
$sqlQuery = mysqli_query($db, $query);
// fetch the result as an associative array here
$result = mysqli_fetch_assoc($sqlQuery);
if (mysqli_num_rows($sqlQuery) == 1) {
// if you are using the email_address as username
$_SESSION['email_address'] = $result['email_address'];
$_SESSION['first_name'] = $result['firstname'];
$_SESSION['last_name'] = $result['lastname'];
$_SESSION['success'] = "You are now logged in";
header('location: dashboard.php');
} else {
array_push($errors, "Wrong username/password");
}
}
您想从一行中获取所有信息吗?@suvojit_007 yesb通过使用*
,您可以从一行中选择所有信息row@suvojit_007是的,但是如果我使用$result['username']
的$result['email\u address',我不知道如何调用它们中的每一个
它将显示致命错误:无法使用C:\xampp\htdocs\revaworks\server.php第26ah行中的mysqli\u result类型的对象作为数组,很抱歉访问您需要使用的对象->
,而不是[]
。所以$result->username
再次抱歉,请参见编辑。您需要获取结果的行。然后,你可以访问你救我的专栏。谢谢你,我很乐意。很高兴我能帮忙:)