调用时调用未定义的函数

时间:2013-10-21 20:48:37

标签: php mysql function variables

这是错误:

致命错误:在第13行的file.php中调用未定义函数get_page_by_id()

以下是调用函数的代码:

<?php 
require_once("includes/connect.php"); 
include("includes/functions.php"); 
?>
<?php 
if (isset($_GET['info'])){
    $sel_table1 = get_info_by_id($_GET['info']);
    $sel_t2 = 0;
    $table2 = NULL;
} elseif (isset($_GET['page'])){
    $table1 = 0;
    $sel_table1 = NULL;
    $table2 = get_page_by_id($_GET['page']);
} else {
    $table1 = 0;
    $sel_table1 = NULL;
    $table2 = 0;
}

?>

这是我的函数的function.php代码:

   function get_page_by_id($page_id){
        $query = "SELECT *";
        $query .= " FROM pages ";
        $query .= " WHERE id=" . $page_id;
        $query .= " LIMIT 1";
        $result_set = mysql_query($query);
        confirm_query($result_set);
        if ($page = mysql_fetch_array($result_set)){
        return $page;
    } else {
        return NULL;
    }
    }

我不知道该怎么想哈哈。当该函数的函数和变量为真时,就会发生这种情况。

由于

更新:这是我的完整功能.php:

<?php

    function confirm_query($result_set){
        if(!$result_set){
            die("Could not connect to database.");
        }
    }

    function get_all_info(){
        $result = mysql_query("SELECT * FROM information ORDER BY position ASC");
        confirm_query($result);
        return $result;
    }
    function get_pages_for_info($information_id){
        $result2 = mysql_query("SELECT * FROM pages WHERE information_id ={$information_id} ORDER BY position ASC");
        confirm_query($result2);
        return $result2;
    }

    function get_info_by_id($information_id){
        $query = "SELECT * ";
        $query .= "FROM information ";
        $query .= "WHERE id=" . $information_id;
        $query .= " LIMIT 1";
        $result_set = mysql_query($query);
        confirm_query($result_set);
        if ($info = mysql_fetch_array($result_set)){
        return $info;
    } else {
        return NULL;
    }
}


    function get_page_by_id($page_id){
        $query = "SELECT *";
        $query .= " FROM pages ";
        $query .= " WHERE id=" . $page_id;
        $query .= " LIMIT 1";
        $result_set = mysql_query($query);
        confirm_query($result_set);
        if ($page = mysql_fetch_array($result_set)){
        return $page;
    } else {
        return NULL;
    }
    }
?>

1 个答案:

答案 0 :(得分:1)

我认为如果找不到文件,include只会发出警告而不是致命错误。尝试做:

require '/includes/functions.php';

这将告诉您是否包含函数文件。

如果包含函数文件并且您仍然遇到此错误,那么在此函数之前函数文件中是否存在语法错误?

如果没有可见的语法错误,您的错误日志是否有任何有用的信息?

然后仍然没有确保您正在使用正确的函数文件。将以下语句放在文件的顶部:

die('here');

如果您重新加载页面并且没有看到正在使用错误文件的消息消息。