【问题标题】:How to retrieve all data from mysql database using php?如何使用 php 从 mysql 数据库中检索所有数据?
【发布时间】:2016-08-17 11:17:18
【问题描述】:

我有另一个 php 文件,它具有连接到数据库的功能(成功连接),还有一个包含 sql 语句的函数 getEvent。 下面的代码成功地从数据库中检索了一个数据行,但我需要它来返回表中的所有数据。

<?php
// include db connect class
require_once 'include/DB_Functions.php';

// connecting to db
$db = new DB_Functions();

 // array for JSON response
$response = array();

// get all events from events table
$event = $db->getEvent();

// check for empty result
if($event !=FALSE){


    $response["error"]=FALSE;
    $response["uuid"] = $event["eventID"];
        $response["eventdetails"]["title"] = $event["title"]; 

echo json_encode($response);

}else{
$response["error"]=TRUE;
$response["error_msg"] = "No events to display";
        echo json_encode($response);
}

?>

getEvent 方法

public function getEvent(){ 
    $stmt= $this->conn->prepare("SELECT * from eventdetails"); 
    $stmt->execute(); 
    $event= $stmt->store_result(); 
    if ($stmt->execute()) { 
        $event = $stmt->get_result()->fetch_assoc(); 
        $stmt->close(); 
        return $event; 
    } else { 
        // events dont existed 
        $stmt->close(); 
        return null; 
    }

【问题讨论】:

  • 您的评论“从事件表中获取所有事件”似乎不正确,因为该函数似乎只返回一个事件。看起来您需要在 DB_Functions 中创建一个函数,将所有事件作为数组获取。
  • 你能给我一个如何将数据作为数组返回的例子吗?这是我现在正在使用的功能。 public function getEvent(){ $stmt= $this->conn->prepare("SELECT * from eventdetails"); $stmt->执行(); $event= $stmt->store_result(); if ($stmt->execute()) { $event = $stmt->get_result()->fetch_assoc(); $stmt->关闭();返回$事件; } else { // 事件不存在 $stmt->close();返回空值; }
  • 这很困难,因为您还没有发布任何数据库代码。我什至不知道您使用的是 mysqli 还是 PDO,以及假设它是 mysqli 是过程接口还是面向对象的接口。 This answer 可能会有所帮助。
  • 一点智能代码缩进也无妨!
  • getEvents() 方法中整理您的想法。看起来你已经尝试了几乎所有的东西,除了显而易见的

标签: php android mysql listview wampserver


【解决方案1】:

如果您想返回一个包含所有查询结果的数组,请使用 PDOStatement 类的 fetchAll() 方法

public function getEvent(){ 

    $stmt = $this->conn->prepare("SELECT * from eventdetails"); 
    $stmt->execute(); 
    $events = $stmt->fetchAll(); 
    return $events;
}

【讨论】:

  • 我已经尝试了 fetchall() 方法,当我使用它时,我收到一条错误消息,指出致命错误:调用未定义方法 mysqli_stmt::fetchAll()。
猜你喜欢
  • 2014-04-10
  • 2016-03-29
  • 2012-03-22
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 2012-02-21
  • 2017-01-20
  • 1970-01-01
相关资源
最近更新 更多