我创建了一个需要显示一些信息的简单函数。
部分信息来自数据库。
但是,在此函数中无法识别数据库处理程序,因此,我收到以下错误:
注意:未定义的变量:第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);
答案 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>";
}
}
}