[英]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.