0

出力:

警告:mysql_query():6は、94行目のC:...\mysql_helper.phpの有効なMySQL-Linkリソースではありません

$con = mysql_connect($GLOBALS['mysql_host'], $GLOBALS['mysql_username'], $GLOBALS['mysql_password']) or die(mysql_error());
$db = mysql_select_db($GLOBALS['mysql_database']) or die(mysql_error($con));


$username=sanitize_mysql($username);
$password=sanitize_mysql($password);
$email=sanitize_mysql($email);

if(check_exists("users", "username", $username) == FALSE){ 
    $query = "INSERT INTO users VALUES('".$username."','".$password."','".$email."','".$status."','".$reg_date."','".$own_ref_id."','')";
    $result = mysql_query($query,$con) or die(mysql_error($con));
    return TRUE;
} else {
    return FALSE;
}
mysql_close($con);

このように構築された他のすべての関数で動作します(コピー/貼り付け)

これはcheck_existsです

    function check_exists($table,$specifier,$value)
{
    $con = mysql_connect($GLOBALS['mysql_host'], $GLOBALS['mysql_username'], $GLOBALS['mysql_password']) or die(mysql_error());
    $db = mysql_select_db($GLOBALS['mysql_database']) or die(mysql_error($con));


    $query = "SELECT * FROM ".$table." WHERE ".$specifier." = '".$value."'";
    $erg = mysql_query($query) or die(mysql_error());

    while ($row = mysql_fetch_array($erg)) {
        mysql_close($con);
        return TRUE;
    }
    mysql_close($con);
    return FALSE;
}
4

1 に答える 1

4

$conincheck_exists()はあなたと同じスコープ内にあるように見える$conため、check_exists()最初に元の接続をオーバーライド(および喪失)し、その後、を呼び出したときに自身の接続を閉じますmysql_close($con)

そのようなすべての機能を使用するために開いたままになっている単一の接続を維持することをお勧めします。

于 2012-05-09T09:35:12.420 に答える