好吧我已经使用了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而不是阅读建设性的批评然后火焰就像这里的一半帖子一样。
答案 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);
}