1

この問題はいくつかのスレッドで見たことがありますが、私が試す機会があった提案はまだ機能しています。

すべての関数 (およびいくつかの変数) をファイルに保存し、そのファイルをページに含めたいと考えています。ここに私のincludes.phpがあります:

<?php
$title = "Whatever Tattoos";

function databaseConnect()
{
$con = mysqli_connect('127.0.0.1', "test", "test", "tats");

if (mysqli_connect_errno())
{
    echo "Failed to connect to MySql: " . mysqli_connect_error();
}
}

?>

私のテストでは、databaseConnect() 関数を呼び出しましたが、クエリは何も返しません。コードを取り出してテスト ファイルに直接配置すると、機能します。変数スコープの問題だと思いましたが、 $con 変数を返そうとしましたが、うまくいきませんでした。extract() $con 変数 - ダメです。$con をグローバルに設定します。

問題を複雑にするために、次のような変数を作成すると:

$test = "this is a test";

関数内では、問題なくメイン コードで呼び出すことができます。私は困惑しています。何か案は?

編集:

クエリコードは次のとおりです。

databaseConnect();

$result = mysqli_query($con , "select * from test");
while($row = mysqli_fetch_array($result))
{
echo $row['test_text'];
}
4

2 に答える 2

2

$conはグローバルではなく関数内で定義されているためアクセスできません。つまり、 のアクセシビリティの範囲内にありませんmysqli_query。次のことを試してください。

$con = NULL;
function databaseConnect()
{
    global $con;
    $con = mysqli_connect('localhost', 'username', 'password', 'db_name');

    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySql: " . mysqli_connect_error();
    }
}

これにより、$con好きな場所でほとんど使用することができます。

于 2013-03-09T22:48:11.173 に答える