0

我正在尝试通过 PHP 回显显示数据库表中的值。MySQL 结果是双精度 (10, 2)。

<?php $link = new mysqli('127.0.0.1', '*******', '*******', '*******');
                     if ($link->connect_errno) {
                        die('Failed to connect to MySQL: (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error);
                     }
                    $user = $_SESSION['user'];
                    $result = $link->query("SELECT * FROM users WHERE username='$user' AND active=1");
                    $numrows = $result->num_rows;
                    if($numrows == 0 || $numrows > 1)
                    {
                        $link->close();
                        session_destroy();
                        echo '<META HTTP-EQUIV="Refresh" Content="0; URL=**************">';
                        exit;   
                    }
                    else if($numrows == 1)
                    {
                        //$sid = $result(8);
                        echo '<strong>this is my string in which i want to show the result in' . $result(8) . 'rest of the string';}?>

显示错误的行是回声线(最后)。谁能指出我在这里做错了什么?谢谢你。

4

4 回答 4

3

您正在调用$result(8)这是 php 中的方法调用。我想你的意思是

$dataRow = $result->fetch_array(MYSQLI_ASSOC);
// collect whatever you need from the array $dataRow array

由于 PHP 是一种解释型语言,因此您可以执行以下操作:为变量赋值并调用该变量

$func = 'myFunc';
$func(); // will call the function myFunc
于 2013-05-01T17:58:50.077 回答
2

$result变量是MySQLi Result。您想从该结果集中获取一行。为此,请使用 fetch_assoc。这将为您提供一个关联数组,其中表的所有字段作为键。

$row = $result->fetch_assoc();
echo $row['username'];
echo $row['whatever'];

编辑:值得注意的是,您容易受到以下安全风险的影响:SQL 注入跨站点脚本和 Cookie 篡改。

于 2013-05-01T18:00:36.320 回答
0

您正在尝试访问数组值,您必须使用:

$result[8] 而不是 $result(8)

此致!

于 2013-09-17T22:10:24.853 回答
-1

看看这个 - $result(8) (最后一行)。变量不能有参数。您可能想要 $result[8] (数组中的第 9 个元素)。

于 2013-05-01T18:00:00.540 回答