-1

这就是我正在处理的那个应该只有你的前面文本的方法,这样我就不会通过数据库:

致命错误:在第 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();
                     }

                 ?>

updater 现在工作得很好,没有任何问题。

问题是 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 并且可以正常工作。根本不会有任何错!

4

1 回答 1

0

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

public function admin_tekst()

在您的代码中:

 class mebe
 {

     private $mysqli;

     function db_c()
     {
     ...
     }


     public function admin_tekst()
     { ...
于 2013-04-09T16:35:59.743 回答