发行阶级,公共职能从MYSQL数据库返回数据

时间:2019-02-02 22:24:48

标签: php

我想使用类具有公共职能和我的查询来跟以下错误回:

  

“注意:未定义的变量:第21行的C:\ xampp \ htdocs \ CMS \ index.php中的文章”

我已经完成了print_r来显示类的结果,一切看起来都正确。

  

“ Array([0] => Array([article_id] => 1 [article_title] =>标题[article_content] =>内容[article_timestamp] => 2019-02-02 13:33:03))” < / p>

在我的类函数中,我尝试将查询放入变量中,然后将该变量返回类之外,但出现错误消息。

如果我绕过类函数,然后将查询结果放入$Articles,那么它将起作用。

第1-6行/Index.php

 <?php
 include_once('includes/article.php');
 $Article = new Article;
 $Articles = $Article->fetch_all();
 print_r($Articles)
 ?>

第17-21行/Index.php

 <?php foreach ($articles as $article) { ?>         
 <ol>
 <li><a href="article.php?id=<?php echo $article['article_id']; ?>"><?php echo $article['article_title']; ?></a> - <small><?php echo date('l F jS, Y', strtotime($article['article_timestamp'])); ?></small></li>
 </ol>
 <?php } ?>

第5-8行/includes.php

 class Article {
     public function fetch_all() {
        return DB_query("SELECT * FROM articles");
     }
 }

第51-70行/includes.php

 function DB_query($query, $params = []) {
     $conn = DB_connect();
     if ($params)
     {
         $stmt = $conn->prepare($query);
         $types = str_repeat('s', count($params));
         $stmt->bind_param($types, ...$params);
         $stmt->execute();
         $result = $stmt->get_result();
     } else {
         $result = mysqli_query($conn, $query);
     }
     if ($result)
     {
         $result = mysqli_fetch_all($result,MYSQLI_ASSOC);
         return $result;
     } else {
         return mysqli_affected_rows($conn);
     }
 }

结果应为echo $article['article_id']将返回ID,echo $article['article_title']将返回标题,最后echo date('l F jS, Y', strtotime($article['article_timestamp']))将返回日期。

1 个答案:

答案 0 :(得分:2)

来自manual

  

PHP中的变量用美元符号表示,后跟变量名称。 变量名称区分大小写。

您需要在两个地方都使用$Articles$articles