2013-07-07 81 views
0

我有一個mysql函數來轉義字符串。我繼續困擾着一個永無止境的錯誤。飼料吐出:PHP Mysqli_real_escape_string在函數中預計參數爲1.空給定

警告:mysqli_real_escape_string()預計參數1是mysqli的,在/home/shipstud/public_html/post_auth.php空給出線39

關於如何解決這個任何想法不勝感激。我已經把它貼在下面的相關代碼:

//connect to server and database 
$db=mysqli_connect('***','***','***','***'); 

// check connection 
if (mysqli_connect_errno()) { 
    echo "Connect failed"; 
    exit(); 
} 



//parameter checking 
$username = safe(stripslashes(trim($_POST['username']))); 


//sanitize input parameters 
function safe($value) 
{ 
    $secureString = mysqli_real_escape_string($db, $value); 

    return $secureString; 
} 

回答

4

您還沒有導入$分貝可變進功能的scope

function safe($value) 
{ 
    global $db; 

    $secureString = mysqli_real_escape_string($db, $value); 

    return $secureString; 
} 

或者,您可以將變量作爲參數傳入。

1

$db變量不在safe()的範圍內。嘗試:

$username = safe($db, stripslashes(trim($_POST['username']))); 

function safe($db, $value) 
{ 
    $secureString = mysqli_real_escape_string($db, $value); 

    return $secureString; 
} 

或許清潔:

function safe($db, $value) 
{ 
    $secureString = $db->real_escape_string($value); 

    return $secureString; 
} 
相關問題