簡體   English   中英

Mysqli_real_escape_string無法識別鏈接

[英]Mysqli_real_escape_string not recognizing link

我正在使用mysqli_real_escape_string清除用戶輸入,然后再將其插入數據庫。 我以前使用它時沒有遇到麻煩,但是由於某種原因,這一次它無法識別我的鏈接標識符。

//Connect to mysql server
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (!$link) {
    die('Failed to connect to server: ' . mysqli_error());
}

//Function to sanitize the values received from the form (prevents SQL injection)
function clean($str) {
    $str = trim($str);
    if (get_magic_quotes_gpc()) {
        $str = stripslashes($str);
    }
    $rtstr = mysqli_real_escape_string($link, $str);
    return $rtstr;
}

由於某些原因,當我嘗試通過該文件輸入信息時,每次遇到此函數時,都會給我錯誤“未定義的變量:鏈接”,然后“ mysqli_real_escape_string()期望參數1為mysqli”。

我很困惑,因為一切似乎都是正確的,但是我找不到解決此錯誤的方法。 我在這里做錯什么了嗎? 還是該代碼之外的某些原因導致了此問題?

您可以在函數中調用$link ,但未在函數中定義它。 您必須將其作為參數傳遞或在函數中定義。

然后,您必須調用函數。

//Connect to mysql server
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (!$link) {
    die('Failed to connect to server: ' . mysqli_error());
}
//Function to sanitize the values received from the form (prevents SQL injection)
function clean($str,$link) {
    $str = trim($str);
    if (get_magic_quotes_gpc()) {
        $str = stripslashes($str);
    }
    $rtstr = mysqli_real_escape_string($link, $str);
    return $rtstr;
}

clean('test',$link);

只需在函數中聲明全局$ link。

function clean($str) {
  /* Other code */
  global $link; // Add this
  $rtstr = mysqli_real_escape_string($link, $str);
  return $rtstr;
}

希望這可以幫助。

和平! xD

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM