【问题标题】:Select data from a row in database从数据库中的一行中选择数据
【发布时间】:2018-11-25 12:00:06
【问题描述】:

我正在创建一个个人资料页面,我希望在其中显示用户的电子邮件。我认为这将是一个非常简单的代码,可以使用数据库中的 select 函数来实现。但是,这只适用于一个字符串,我似乎无法弄清楚为什么。

这是我的原始代码

session_start();

$_SESSION["user"] = $username;
$_SESSION["pass"] = $password;
$_SESSION["email"] = $email;
$connection = mysqli_connect ("localhost", "root", "", "picshare");

if ($connection ->connect_error) {
    die("Connection failed: " . $connection->connect_error);
}else{

$query = mysqli_query($connection, "SELECT email FROM login WHERE username='".$_SESSION["user"]."'");
$field = mysqli_fetch_assoc($query); 

    if (!$query)
    {
        die('Error: ' . mysqli_error($con));
    }if(mysqli_num_rows($query) > 0){
        $field = mysqli_fetch_assoc($query);


}else{
echo "error";
$conn->close();

    }}

当我尝试回显 $field 时,没有回显任何内容

            <p class ="right uc"><?php       echo($field['email']);?></p> 

我重试了代码,但我没有使用会话,而是创建了一个变量

$host = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "picshare";
$user = 'Eniola Olaogun';

$conn = new mysqli ($host, $dbusername, $dbpassword, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}else{

$query = mysqli_query($conn, "SELECT email FROM login WHERE username='".$user."'");
$field = mysqli_fetch_assoc($query); 

    if (!$query)
    {
        die('Error: ' . mysqli_error($con));
    }if(mysqli_num_rows($query) > 0){
        $field = mysqli_fetch_assoc($query);
        echo($field['email']);

}else{
echo "error";
$conn->close();

此代码显示了电子邮件,因此我继续将 $user 变量更改为另一个名称,原始问题出现在没有回显的情况下。

我回到原来的代码并以 Eniola Olaogun 的身份登录并回显了电子邮件,但是一旦我更改了登录的人,就没有回显任何电子邮件。

我不知道为什么我会遇到这个问题,非常感谢一些帮助

【问题讨论】:

  • mysqli_error($con) 这不起作用,您使用的是不同的变量。

标签: php html mysql database session


【解决方案1】:
$host = "localhost";
$dbusername = "root";
$dbpassword = "";
$dbname = "picshare";
$user = 'Eniola Olaogun';

$conn = new mysqli ($host, $dbusername, $dbpassword, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
else {
$sql = "SELECT email FROM login WHERE username= {$user}";
$result = $conn->query($sql); 

if($result->num_rows > 0) {
        $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
        echo($row['email']);
}
else {
echo "error";
$conn->close();

【讨论】:

    【解决方案2】:

    error connecting to mysql database through crazy domains

    这听起来像是基于您登录的用户的权限问题。

    使用具有全局访问权限的“root”用户密码对其进行测试,然后对其进行故障排除和隔离。我打赌你会找到的。

    我几乎不可能进行远程测试,因为我没有您的数据库架构和用户帐户可供验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      • 2015-09-22
      • 2019-02-21
      • 1970-01-01
      相关资源
      最近更新 更多