【问题标题】:query without loop无循环查询
【发布时间】:2011-01-09 21:57:57
【问题描述】:

我想从数据库记录中查询单个帖子(标题、正文、日期)

例如我有我的查询..

$query = 'SELECT * FROM posts WHERE id=$post_id';

从该查询中,我如何在没有 while 或 foreach 循环的情况下回显标题?

【问题讨论】:

  • 如果只返回一行,有什么关系?
  • 你真的需要一切吗? (*)?

标签: php mysql database


【解决方案1】:

您可以只调用 mysql_fetch_assoc() (或任何类似函数)之一。像这样:

$sql = "SELECT * FROM table";
$row = mysql_fetch_assoc( mysql_query($sql) );
echo $row['title'];

这是使用 MySQL 函数执行此操作的最简单和最易读的方法。

【讨论】:

    【解决方案2】:

    你可以使用mysql_result:

    $sql = 'SELECT * FROM posts WHERE id=$post_id';
    $query = mysql_query($sql);
    echo mysql_result($query, 0, 'title');
    

    这将在第一 (0) 行回显字段 title

    【讨论】:

      【解决方案3】:

      您可以在不使用 while 循环的情况下使用此代码进行选择查询:

      $conn 是一个数据库连接

      $sql = "SELECT * FROM teacher_details";
      $row = mysqli_fetch_assoc($conn->query($sql) );
      $teacher_name = $row['teacher_name'];
      

      【讨论】:

        【解决方案4】:

        当您使用像 mysql_fetch_array 这样的函数时,您没有义务进行迭代。甚至,当你这样做时,你只是得到下一行可用的结果,直到它返回 null:

        $query = mysql_query("SELECT * FROM table");
        while($row = mysql_fetch_array($query)) {
            var_dump($row);
        }
        

        因此,对查询中的每一行执行此操作在技术上是相同的:

        $query = mysql_query("SELECT * FROM table");
        
        $row = mysql_fetch_array($query)
        var_dump($row);
        // Array()
        $row = mysql_fetch_array($query)
        var_dump($row);
        // Array()
        $row = mysql_fetch_array($query)
        var_dump($row);
        // null < the "while" statment will stop here
        

        然后,您可以拨打mysql_fetch_array 一次就可以了。

        祝你好运!

        【讨论】:

          猜你喜欢
          • 2011-07-25
          • 2016-09-05
          • 2016-01-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多