php显示属于用户名的变量

时间:2013-09-19 07:59:17

标签: php mysql

我想显示属于某个用户名的变量“points”。

这是我的login2.php文件的一部分:

if(isset($_SESSION['username'])){
    $username=$_SESSION['username'];
    $points = $mysqli->query("SELECT points FROM account_information WHERE username = '".$username."'");

}

我现在不知道如何展示这些要点。我知道$ points的结果不是属于用户名的点数。我其实想知道如何做到这一点以及$积分的结果。如何显示我正在运行的查询的实际结果?(这将是我的数据库中存储的点的数量所以当然如果你在mysql中运行这个查询,那么结果将是: “点数量”,但在这种情况下,我不知道如何实际显示点数。

3 个答案:

答案 0 :(得分:3)

执行AND FETCHING sql / results后,“points”值为。

获取行 http://www.php.net/manual/de/mysqli-result.fetch-row.php

$sql_result = $mysqli->query("SELECT points FROM account_information WHERE username = '".$username."'");

while ($data_row = mysqli_fetch_assoc($points)) {
    print 'Your score is: '.$data_row['points'];
}

答案 1 :(得分:3)

while ($row = mysqli_fetch_assoc($points)) {
    echo $row['points'];
}

只需将结果放入名为$ row的数组中,然后使用$ row ['points']访问数组的各个部分。

答案 2 :(得分:1)

OP已经接受了答案,但他们都不是很好的imo NDM说看一下那些写得很好的文档

我认为混合对象和程序风格也是非常糟糕的做法。

另外,其他答案不关心安全性。使用预准备语句并重新选择用户名,因为在这种情况下mysqli会验证您的$_SESSION['username']

看一下这个:

<?php
// Init the database connection
$db = new mysqli("example.com", "user", "password", "database");

// Look for errors or throw an exception
if ($db->connect_errno) {
    throw new Exception($db->connect_error, $db->connect_errno);
}

// Init prepared statement
$prep = $db->stmt_init();

// Prepared statement
$prep = $db->prepare("SELECT username, points FROM account_information WHERE username = ? AND username IS NOT NULL AND username != ''");

// See if statement is ok
if (!$prep) {
    throw new Exception($db->error);
}

// Put your variables into the query
$prep->bind_param('s', $_SESSION['username']);

// Fire the query!
$prep->execute();

// This is magic, it's awesome.. try it :-))
$prep->bind_result($username, $points);

// Get the results easily
while ($prep->fetch()) {
    echo "{$username} has {$points}<br>", PHP_EOL;
}

// This is like in our house, when we leave it, we close the door
$prep->close();
$db->close();

<强>更新

回答你的评论,这种风格更好,因为对象总体上比程序功能更好。更好地编程,更好地阅读,更容易理解(来自现实生活对象的对象摘要)。 bind_param 验证您的输入。想象一下,我将;DROP TABLE account_information;--放入我的用户名会话中。这是 SQL注入 - 阻止它们的唯一安全方法是 prepare语句。或者想象一下多个数据库连接。每个mysqli对象代表一个不同的连接。这不像程序风格那么清楚。此外,使用例外的错误报告更加灵活,因为它们可以catchthrow n。

如果您想了解更多关于他们的回报,只需阅读手册http://php.net/mysqli_query

mysqli_query / mysqli::query返回值:

  

失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或   EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于   其他成功的查询mysqli_query()将返回TRUE。