提问人:Chinmay Chandak 提问时间:2/12/2014 最后编辑:TylerHChinmay Chandak 更新时间:7/12/2022 访问量:275547
无法将类 mysqli_result 的对象转换为字符串
Object of class mysqli_result could not be converted to string
问:
我收到错误:
无法将类 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>";
答:
2赞
Landon
10/23/2012
#1
该函数返回一个对象,您需要从该函数返回的内容中获取记录。查看此页面上的示例,了解如何从 mysql 打印数据query()
58赞
Shankar Narayana Damodaran
2/12/2014
#2
mysqli_query()
方法将对象资源返回给 $result
变量,而不是字符串。
您需要将其循环起来,然后访问记录。你不能直接把它用作你的变量。$result
while ($row = $result->fetch_assoc()) {
echo $row['classtype']."<br>";
}
评论
9赞
Andrew
9/22/2014
如果您知道它只有 1 行,您也可以执行 if ($row = $result->fetch_assoc()) {...} 而不是 while。
0赞
hsz
2/12/2014
#3
尝试使用:
$row = mysqli_fetch_assoc($result);
echo "my result <a href='data/" . htmlentities($row['classtype'], ENT_QUOTES, 'UTF-8') . ".php'>My account</a>";
9赞
Chandan Singh Gadhwal
2/12/2014
#4
在使用变量之前,您应该使用 or 函数。$result
$row = mysqli_fetch_array($result)
mysqli_fetch_assoc()
喜欢这个:
$row = mysqli_fetch_array($result);
并根据需要使用数组。$row
评论
2赞
Funk Forty Niner
8/5/2018
他们在这里使用 mysqli_ 作为 API。MySQL_与此不相容。
5赞
Dharman
7/24/2020
#5
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;
如果您需要多个值。
使用 loop 遍历结果并逐一获取每一行。您可以使用列名作为数组索引来访问每列。foreach
$result = $con->query($tourquery); // or mysqli_query($con, $tourquery);
foreach($result as $row) {
echo '<strong>Per room amount: </strong>'.$row['roomprice'];
}
评论
mysqli::query()