2017-07-05 6 views
-1

私のPHPスクリプトは機能外で動作していますが、機能内では動作していません。PHPスクリプトが期待どおりに動作しない

$uid = $_SESSION['user_id']; 
function getUserName($conn) { 
$sql = "SELECT * FROM `tbl_user` WHERE `user_id` ='".$uid."' "; 
$row = $conn->query($sql)->fetch_array(); 
return $row["user_name"]; 
} 

私が間違っている場所では入手できません。

+0

を試してみてください?あなたが関数内に関数を書くのであれば、現在は機能します。 – urfusion

+0

外/内ではどういう意味ですか? – Oasa

+0

実際にはどんなエラーがありますか? – NID

答えて

0

あなたが取得しているエラーです何この

function getUserName($uid, $conn) { 
// code here 
} 
1

グローバル変数を使用しないでください。それは悪です。

関数にパラメータとしてユーザーIDを渡します。あなたが行うことができます

function getUserName($conn, $uid) { 
    $sql = "SELECT * FROM `tbl_user` WHERE `user_id` ='".$uid."' "; 
    $row = $conn->query($sql)->fetch_array(); 
    return $row["user_name"]; 
} 

echo getUserName($conn, $_SESSION['user_id']); 
0

最善のことはavoidglobalsで、ちょうどパラメータとしてuidを渡す:

$uid = $_SESSION['user_id']; 

$username = getUserName($conn, $uid); 

function getUserName($uid, $conn) { 
    $sql = "SELECT * FROM `tbl_user` WHERE `user_id` ='".$uid."' "; 
    $row = $conn->query($sql)->fetch_array(); 
    return $row["user_name"]; 
} 

読むhttp://php.net/manual/en/language.variables.scope.phpについて学ぶためにPHPの変数スコープ

this post about SQL injection

0
あなたは目的球内のコードを動作させる機能を呼び出す必要が

関連する問題