PHP脚本无法按预期工作

时间:2017-07-05 06:59:01

标签: 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"];
}

无法在错误的地方找到它。

4 个答案:

答案 0 :(得分: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']);

答案 1 :(得分:0)

您可以做的最好的事情是avoid globals,只需将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

答案 2 :(得分:0)

你需要调用函数来处理函数内的代码

答案 3 :(得分:0)

试试这个

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