php函数返回值不会工作

时间:2014-01-13 01:01:40

标签: php function

好吧我已经使用了mysql格式很长一段时间了但是我想把它的时间转移到新的mysqli格式,而不是之后。我试图重写我的功能从数据库中绘制统计数据,但我得到各种错误。

我看过无数的mysqli tuts,但没有一个非常具有描述性,我不太了解2参数规则等。下面我发布了我的功能和包括。如果有人能说出我做错了什么我会很感激。

  

致命错误:在第7行的C:\ xampp \ htdocs \ includes \ stat.php中的非对象上调用成员函数fetch_assoc()

stat.php     

function getStat($stat) {
require_once 'includes/config.php';     
$mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
$sql = $mysqli->query("SELECT $stat FROM players WHERE  username = '".$_SESSION['username']."'");
$row = $sql->fetch_assoc();
$result = $row['$stat'];
return $result;
}
?>

这是我正在尝试使用的测试页面。

test.php的

<?php
include 'includes/login-check.php';
include 'includes/config.php';
include 'includes/database.php';
include 'includes/stat.php';

echo getStat('name');


?>

ow请不要开始发布一堆评论抨击代码原因如前所述我从未使用过mysqli所以ide而不是阅读建设性的批评然后火焰就像这里的一半帖子一样。

2 个答案:

答案 0 :(得分:1)

在getStat函数中更改它。

$result = $row[$stat];

答案 1 :(得分:0)

调整以下代码以最适合您当前的代码......

if ($stmt = mysqli_prepare($link, "SELECT $stat FROM players WHERE  username = ?")) {

    /* bind parameters for markers */
    mysqli_stmt_bind_param($stmt, "s", $_SESSION['username']);

    /* execute query */
    mysqli_stmt_execute($stmt);

    /* bind result variables */
    mysqli_stmt_bind_result($stmt, $district);

    /* fetch value */
    mysqli_stmt_fetch($stmt);

    printf("%s is the current username.");

    /* close statement */
    mysqli_stmt_close($stmt);
}