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

Posted

技术标签:

【中文标题】类 mysqli_result 的对象无法转换为字符串【英文标题】:Object of class mysqli_result could not be converted to string 【发布时间】:2014-03-10 10:48:40 【问题描述】:

我收到错误:

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

这是我的代码:

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

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

【问题讨论】:

查看mysqli_result 的参考资料,它会让您了解如何使用从mysqli::query() 获得的对象。 你需要先获取一行数据:php.net/mysqli_fetch_row 【参考方案1】:

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

您需要循环它然后访问记录。您只是不能直接将其用作您的 $result 变量。

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

【讨论】:

如果你知道它只有 1 行,你也可以使用 if ($row = $result->fetch_assoc()) ... 而不是 while。【参考方案2】:

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

像这样:

$row = mysqli_fetch_array($result);

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

【讨论】:

他们在这里使用 mysqli_ 作为 API。 MySQL_ 不与它混合。【参考方案3】:

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'];

【讨论】:

【参考方案4】:

query() 函数返回一个对象,您需要从该函数返回的内容中获取记录。查看page 上的示例,了解如何从 mysql 打印数据

【讨论】:

【参考方案5】:

尝试:

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

【讨论】:

以上是关于类 mysqli_result 的对象无法转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:无法使用 mysqli_result 类型的对象 [关闭]

致命错误:无法在第 228 行的 /home/william/public_html/forums/index.php 中使用类型为 mysqli_result 的对象作为数组

PHP中的MySQLi扩展学习MySQLI_result对象操作

C#文件转换为字节流及字节流转换为文件

JS中,把一个数字转换为字串

Lua序列化