2012-05-09 43 views
0

輸出:MySQL的不是一個有效的ressource

警告:請求mysql_query():6是不是在C一個有效的MySQL鏈路資源:... \ mysql_helper.php上線94

$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; 
} 
+0

執行'sanitize_mysql()'或'check_exists()'touch'$ con'? – eggyal

+0

我添加了check_exists –

回答

4

看來,$concheck_exists()與您的$con處於相同的範圍,因此,check_exists()先覆蓋(並丟失)您的原始連接,然後在調用mysql_close($con)時關閉自己的連接。

爲了使用所有這些功能,最好維護一個單獨的連接。

+0

即使我將check_exists中的$ con更改爲$ con2,它也不起作用。你如何看待我只能使用一個連接?爲每個使用mysql訪問的函數傳遞$ con作爲參數? –

+0

@LiamSchnell:要麼是這樣,要麼在每個函數的開頭聲明'global $ con'來訪問一個全局變量(如果你的'mysql_helper'是一個類,你可以使用成員變量,例如'$ this-> con')。 – eggyal

+0

想我要與這一個:[鏈接](http://stackoverflow.com/questions/10208691/do-i-need-a-php-mysql-connection-in-each-function-that-uses-database ) –

相關問題