2014-11-06 30 views
-1

我剛開始使用mysqli的,因爲我試圖寫我的代碼,我遇到了一個問題
代碼:庫MySQLi未定義的變量

<?php 
$con = mysqli_connect("localhost", "admin", "idontcare3", "vment"); 
function email($to, $subject, $body) { 
mail($to, $subject, $body, "From: [email protected]"); 
} 
function array_sanitize(&$item) { 
$item = htmlentities(strip_tags(mysqli_real_escape_string($con, $item))); 
} 
function sanitize($data) { 
return htmlentities(strip_tags(mysqli_real_escape_string($con, $data)));  
} 

我跑的代碼,這表明

注意:未定義的變量:con在C:\ Users \ DCV_Diego \ Dropbox \ vment \ htdocs \ LOL \ all \ functions \ general.php上線10

This是線10:

變量已在開始時被定義已經和誤差僅示出了其中使用了$con變量的第二功能。
另一個錯誤是這樣一個

警告:mysqli_real_escape_string()預計參數1是mysqli的,在C空給出:\ Users \用戶 DCV_Diego \收存箱\ vment \ htdocs中\ LOL \所有\功能\一般。在線10的PHP

這可能是一個愚蠢的錯誤,但我沒有找到具體的答案這個問題,請幫助!

+0

您的連接調用似乎不工作。嘗試在最後添加'或die(mysqli_error())'。 – Jhecht 2014-11-06 03:19:04

+1

你已經聲明並初始化你的'$ con'變量,但是試圖在一個超出範圍的函數內使用它。將變量作爲參數傳遞給函數,或者在函數中聲明它爲'global'。 – 2014-11-06 03:20:29

回答

1

正是出於函數的範圍。可以在函數內定義它,或者在調用函數時傳遞它。

function your_function() { 
    $con = mysqli_connect("localhost", "admin", "idontcare3", "vment"); 
    //rest of the code 
} 

或致電

//call function 
your_function($var, $con); 
//define 
function your_function($var, $con) { 
    //your code 
} 
+0

非常感謝你,我完全忘了全局變量...... – 2014-11-06 23:01:34

0

您需要通過$con作爲函數參數。實施例

$con = mysqli_connect("localhost", "admin", "idontcare3", "vment"); 

function sanitize($con, $data) { ////Add $con parameter 
       /*^^^^*/ 
    return htmlentities(strip_tags(mysqli_real_escape_string($con, $data))); 
} 

在呼叫功能傳遞$con變量作爲參數

var new_var = sanitize($con, $data); 
         /*^^^*/ 
-1

感謝您的建議的時間傳遞。此代碼爲我工作。

return htmlentities(strip_tags(mysqli_real_escape_string($GLOBALS['con'], $data)));