0

PHPコードの1行目と2行目以降に、通知とエラーメッセージが表示されました。

Notice: 未定義の変数: dbc in ...
警告: mysqli_get_host_info() は、パラメータ 1 が mysqli であると想定しています。

connectdb();
echo mysqli_get_host_info($dbc);

私の通知と警告を解決するのを手伝ってくれませんか?

外部関数に対しても $dbc を定義するにはどうすればよいですか? 当分の間、エラーレベル-1で作業しています。解決策として通知を表示しないように言わないでください。残念ながら、カスタム関数変数の通過の問題を理解できません。ありがとう。

function connectdb() 
{
    $dbc = mysqli_connect (db_host, db_user, db_password, db_name);
    if (!$dbc) 
        {
            $txt = mysqli_connect_errno().mysqli_connect_error();
            db_connect_error_mail($txt);
            unset ($txt);
            die('error message.');
        } 
    else 
        {
            return $dbc;
        }
}

4

2 に答える 2

2

connectdb() メソッドの戻り値をどこにも割り当てていません。あなたがしたい:

$connection = connectdb();
echo mysqli_get_host_info($connection);

明確にするために、関数で使用するものとは異なる変数名を使用しました。これらは異なるスコープで定義されているため、異なる変数であるためです。

于 2013-02-02T16:34:39.563 に答える
1

関数からを返し$dbcていますが、1 行目で関数の戻り値を代入していませんconnectdb()。コンパイラは、戻り値を に保存したことをどのように認識します$dbcか?

$dbc = connectdb();

これでエラーが修正されます。

于 2013-02-02T16:35:01.340 に答える