函数内的PHP函数

时间:2016-04-29 19:16:09

标签: php

我创建了一个需要显示一些信息的简单函数。

部分信息来自数据库。

但是,在此函数中无法识别数据库处理程序,因此,我收到以下错误:

注意:未定义的变量:第82行审查 \ controller \ edit_mails.php中的数据

致命错误:在第82行 censored \ controller \ edit_mails.php中调用null成员函数get_results()

我正在使用ezSQL数据库处理程序

功能:

function MessageSelector() {
$emails = $db->get_results("SELECT * FROM settings_emails WHERE cat = '$edit_type'" );
if(empty($emails)) {
//There are no messages to select
        } 
else { 
        //Create an option for each message
        foreach ($emails as $email):  
            echo "<option value=\"", $email->title , "\" onclick=\"location.href='edit_emails.php?x=", $edit_type , "&mail=",$email->id,"';\">", $email->title , "</option>";
        endforeach;
        ";}  
}

数据库处理程序:

require_once ADMIN_DB_DIR . '/ez_sql_core.php';
require_once ADMIN_DB_DIR . '/ez_sql_mysql.php';
global $db;
$db = new ezSQL_mysql($dbuser, $dbpassword, $dbname, $dbhost);

1 个答案:

答案 0 :(得分:1)

$db作为参数传递到函数中,以便在函数范围内使用。

另外,你的foreach有些奇怪。正常连接,不要忘记定义$edit_type

function MessageSelector($db) {
     $emails = $db->get_results("SELECT * FROM settings_emails WHERE cat = '$edit_type'" );
     if(empty($emails)) {
           //There are no messages to select
     } else { 
        //Create an option for each message
        foreach ($emails as $email) {  
            echo "<option value=\"". $email->title . "\" onclick=\"location.href='edit_emails.php?x=". $edit_type . "&mail=" . $email->id . "';\">". $email->title . "</option>";
        }
     }  
}