mysqli_result类的对象无法转换为字符串

时间:2014-02-12 08:26:29

标签: php mysqli

我收到错误:

Object of class mysqli_result could not be converted to string

这是我的代码:

$username2 = htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');

$con = mysqli_connect('localhost','root','','test');

$result = mysqli_query($con, "SELECT classtype FROM learn_users
                        WHERE username='$username2';");

echo "my result <a href='data/$result.php'>My account</a>";

5 个答案:

答案 0 :(得分:36)

mysqli_query()将对象资源返回到$result变量,而不是字符串。

您需要将其循环然后访问记录。您无法直接将其用作$result变量。

代码......

while ($row = $result->fetch_assoc()) {
    echo $row['classtype']."<br>";
}

答案 1 :(得分:3)

在使用$result变量之前,您应该使用$row = mysql_fetch_array($result)mysqli_fetch_assoc()函数。

像这样:

$row = mysql_fetch_array($result);

并根据需要使用$row数组。

答案 2 :(得分:2)

mysqli:query()返回一个mysqli_result对象,该对象无法序列化为字符串。

您需要从对象获取结果。这是这样做的方法。

如果您需要一个值。

从结果中提取一行,然后访问列索引0或使用关联键。如果结果中没有行,请使用null-coalescing运算符。

$result = $con->query($tourquery);  // or mysqli_query($con, $tourquery);

$tourresult = $result->fetch_array()[0] ?? '';
// OR
$tourresult = $result->fetch_array()['roomprice'] ?? '';

echo '<strong>Per room amount:  </strong>'.$tourresult;

如果您需要多个值。

使用foreach循环遍历结果,并逐个读取每一行。您可以使用列名作为数组索引来访问每一列。

$result = $con->query($tourquery);  // or mysqli_query($con, $tourquery);

foreach($result as $row) {
    echo '<strong>Per room amount:  </strong>'.$row['roomprice'];
}

答案 3 :(得分:0)

尝试:

$row = mysqli_fetch_assoc($result);
echo "my result <a href='data/" . $row['classtype'] . ".php'>My account</a>";

答案 4 :(得分:-1)

确保mysqli_connect()正在创建与DB的连接。您可以使用mysqli_errno()检查错误。