gpt4 book ai didi

PHP - mysqli_stmt 类的对象无法转换为字符串

转载 作者:行者123 更新时间:2023-11-29 06:41:15 26 4
gpt4 key购买 nike

这是我用于获取评论和回复的脚本。它不是嵌套的,因为我不关心它,我只想能够以与 YouTube 类似的方式显示评论。

    <?php
header("Access-Control-Allow-Origin: *");
ob_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Importing DBConfig.php file.
include 'DBConfig.php';

// Creating connection.
$con = mysqli_connect($HostName,$HostUser2,$HostPass2,$DatabaseName2);

// Creating SQL query
$query = "SELECT * FROM comments WHERE comments.id = 22 ";

$queryReplies = $con -> prepare('SELECT * FROM replies WHERE replies.id = ? ');


if ($con->connect_error) {
header("HTTP/1.1 500 Internal Server Error");
}
else {
if ($result = $con->query($query)) {
header('Content-type: application/json; charset=utf-8');
if( $result->num_rows > 0) {

$post_arr = array();

while($row = $result->fetch_array(MYSQLI_ASSOC)) // First loop for comment
{
$commentID = $row['uniqueID'];
extract($row);

$post_item = array(
'uniqueID' => $uniqueID,
'comment' => $comment,
'date' => $date,
'user' => $user
);

$queryReplies->bind_param("s",$commentID);
$resultReplies = $con->$queryReplies->execute();

while($rowReplies = $resultReplies->fetch_array(MYSQLI_ASSOC)) // Second loop for replies to comment
{
extract($rowReplies);

$reply_array = array(
'comment' => $comment,
'date' => $date,
'user' => $user
);
array_push($post_item,$reply_array);

}

array_push($post_arr,$post_item);

}
echo json_encode($post_arr);

}
}
}

mysqli_close($con);

ob_end_flush();
?>

所以基本上,我希望它返回 block 。我的数据库中有一个评论和回复表。

它给了我以下错误,我不知道如何解决它。该错误是什么意思?如果有的话我该如何解决?我被困住了。

<br />
<b>Recoverable fatal error</b>: Object of class mysqli_stmt could not be converted to string in <b>C:\Apache24\htdocs\getComments.php</b> on line <b>45</b><br />

经过牛头怪的建议并从 $querylines 中删除 ->con 后,它现在显示

    <br />
<b>Fatal error</b>: Uncaught Error: Call to a member function fetch_array() on boolean in C:\Apache24\htdocs\getComments.php:47
Stack trace:
#0 {main}
thrown in <b>C:\Apache24\htdocs\getComments.php</b> on line <b>47</b><br />

最佳答案

$resultReplies = $con->$queryReplies->execute();

因为您在 $con->$queryReplies 部分中包含了 $,PHP 认为您想要访问 $con 的属性> 对象,而实际上您只想使用 $queryReplies。删除 $con-> 部分。

通常,您会查看 PHP 指出发生错误的行,然后查看该行是否有问题。在这种情况下,您可以知道$queryReplies包含一个mysql_stmt对象。至少这就是我指出错误根源的原因:)。

关于PHP - mysqli_stmt 类的对象无法转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51533194/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com