致命错误:调用未定义的方法 - 错误

时间:2013-04-09 16:19:25

标签: php mysqli

这就是我正在努力的方式,只应该是你的正文,以便我不会通过数据库:

致命错误:在第30行的/ home / jesperbo / public_html / blabla.dk / admin_forside.php中调用未定义的方法mebe :: admin_tekst()

function admin_tekst()
     {
             if ($stmt = $this->mysqli->prepare('SELECT `tekst` FROM `forside_tekst`'))
             { 
                 $stmt->execute();
                 $stmt->store_result();

                 $stmt->bind_result($tekst);

                 while ($stmt->fetch()) {
                 ?>
                 <form action="#" method="post">
                     <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"><?php echo $tekst;?></textarea>
                     <input type="submit" name="opret" value="Opret Blog" class="new">
                 </form>
                 <?php
                 }
                 $stmt->close();

             } else {
                 echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
             }    

     }

当我得到它时,就像这样:

<?php

                     $admin_tekst = $mebe->admin_tekst();

                     if(isset($_POST["opret"]))
                     {
                         $updater_forside = $mebe->updater_forside();
                     }

                 ?>

更新程序完全正常,没有任何问题。

是admin_tekst(),这是问题

当我获得页面信息时:

session_start();
 require_once("indhold/inc/fun_db.php");
 $mebe = new mebe;
 $db = $mebe->db_c();

所以这里似乎是我的函数文件的开头:

if(IN_DEBUG_MODE){
     ini_set("display_startup_errors", "on");
     ini_set("display_errors", "on");
       ini_set("html_errors", "false");
     error_reporting(-1); // -1 viser alle slags fejl beskeder
     ini_set("ignore_repeated_errors", 0);
 }
 else{
     error_reporting(0);
 }

 class mebe
 {

 private $mysqli;
     function db_c()
     {
         $mysqli = new mysqli('localhost', '..', '..', '..');

         if ($mysqli->connect_errno) {
             die('Fejl : ' . $mysqli->connect_errno);
         }
         mysqli_set_charset($mysqli, "utf8");
         $this->mysqli = $mysqli;
     }


     function admin_tekst()
     {
             if ($stmt = $this->mysqli->prepare('SELECT `tekst` FROM `forside_tekst`'))
             { 
                 $stmt->execute();
                 $stmt->store_result();

                 $stmt->bind_result($tekst);

                 while ($stmt->fetch()) {
                 ?>
                 <form action="#" method="post">
                     <textarea name="tekst" cols="20" rows="15" class="new" style="width:100%;"><?php echo $tekst;?></textarea>
                     <input type="submit" name="opret" value="Opret Blog" class="new">
                 </form>
                 <?php
                 }
                 $stmt->close();

             } else {
                 echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
             }    

     }


     }

 }

所有其他功能正常示例

function updater_forside()
     {
         if ($stmt = $this->mysqli->prepare('UPDATE `forside_tekst` SET `tekst`=? WHERE `id`=?'))
         { 
             $stmt->bind_param('si', $tekst, $id);

             $tekst = $_POST["tekst"]; 
             $id = 1;

             $stmt->execute();

             $stmt->close();

         }
         else
         {
             echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
         }
     }

它还会引入admin_forside.php并且可以正常运行。根本不会有任何错误!。

1 个答案:

答案 0 :(得分:0)

尝试在类 mebe 中公开您的功能,如下所示:

public function admin_tekst()
代码中的

 class mebe
 {

     private $mysqli;

     function db_c()
     {
     ...
     }


     public function admin_tekst()
     { ...