SELECT column mysql


SELECT column mysql

如果我在正确的路径上,我有点怀疑。我有一个mysql数据库,里面有用户的登录详细信息。我正在制作一个个人资料页面,我希望在那里向用户显示有关用户的信息。我现在正试图返回数据库中有一列的名字。我使用此代码的路径是否正确?

<td>
    Firstname
    <?php
      $stmt = $mysqli->prepare("SELECT firstname FROM login");
      $stmt->execute();
      $fname = null;
        $stmt->bind_result( $fname);
        while($stmt->fetch()) {
          $firstname = // Code here
          echo $firstname;
        }
      $stmt->close();
      $mysqli->close();
    ?>
  </td>

更新:

我试着把代码缩小一点。这段代码实际上会重试用户,但它是数据库中的所有用户,而不仅仅是与我一起登录的用户。如果我只需要我登录的当前用户的名字,那么SELECT查询是否应该使用primarykey?

<td>
    Firstname
    <?php
        $sql ="SELECT firstname FROM login;";
        $res = $mysqli->query($sql);
        //print($res);
        if($res){                                       
            while($row = $res->fetch_assoc()){
               echo $row['firstname'];
          }                               
        }
      ?>        
  </td>

您在正确的路径上,但需要将数组分配给一个变量,这样您就可以在作用域中添加列名并删除$fname 的绑定

//$stmt->bind_result($fname);
while($column = $stmt->fetch()) {
     $firstname = $column['firstname'];
     echo $firstname;
}

或者你可以只使用之前绑定的变量

$stmt->bind_result($fname);
while($stmt->fetch()) {
     echo $fname;
}

您可以通过在查询中添加WHERE条件来优化查询并将tresult限制为仅一个用户,您可以使用用户ID,例如

SELECT firstname FROM login WHERE userid = 1

如果你在玩PHP并试图了解它是如何工作的,那么你就走上了一条很好的道路。如果你计划将此代码部署到互联网上,你会遇到一些问题:

  1. 你的标记似乎不正确。为什么要把所有的名字放在一个<td>
  2. 您不应该在标记内部进行SQL查询。如果您希望某一天显示缓存或文本文件的结果,该怎么办?理想情况下,您甚至不会将PHP和HTML混合使用。有些人使用PHP内置的模板功能,但通常更喜欢使用像jade或trick这样的模板语言
  3. 您的代码对齐不一致

但如果你只是看到PHP可以做什么,那就做得好。继续尝试。对大多数人来说,这是最好的学习方式。其他人喜欢看书,然后尝试一些东西。