gpt4 book ai didi

PHP mysqli 准备语句无法正常工作

转载 作者:行者123 更新时间:2023-11-28 23:39:10 24 4
gpt4 key购买 nike

嗨,希望你能帮助我:)

我有一个函数,它在过去有效,但这次我得到了一个有线行为..

它返回 e.commenttime 但没有别的..

function Get_Comment($mysqli, $event_id){
if ($stmt = $mysqli->prepare("SELECT e.text, e.commenttime, m.username FROM eventcomment e INNER JOIN members m ON e.memberid = m.id WHERE e.eventid =$event_id ORDER BY e.commenttime ")); {
$stmt->bind_result($comment, $commenttime, $commentuser);
// Execute the prepared query.
$stmt->execute();
//grab a result set
$resultSet = $stmt->get_result();

// Returning array
$events = array();

// Fetch results
while ($row=mysqli_fetch_array($resultSet,MYSQLI_ASSOC)) {

$e = array();
$e['comment'] = $row['comment'];
$e['commenttime'] = $row['commenttime'];
$e['commentuser'] = $row['commentuser'];
// Merge the event array into the return array
array_push($events, $e);
// print_r($e);
}
// return array"
return $events;
}
}

为了确保数据正确,我通过 phpMyAdmin 运行

SELECT e.text, e.commenttime, m.username FROM eventcomment e INNER JOIN members m ON e.memberid = m.id WHERE e.eventid =15 ORDER BY e.commenttime

这里它返回了所有字段的完整数据..

最好的问候比亚克

最佳答案

我认为唯一的问题是您使用的数组键与查询中的列名不匹配。您只会收到评论时间,因为那是唯一确实匹配的时间。

您可以编辑 $row 的键以匹配查询中的列名,如下所示:

while ($row=mysqli_fetch_array($resultSet,MYSQLI_ASSOC)) {
$e = array();
$e['comment'] = $row['text'];
$e['commenttime'] = $row['commenttime'];
$e['commentuser'] = $row['username'];

此外,您似乎将结果绑定(bind)到变量,然后不使用它们。如果您从获取的数组中获取所有值,那么我不认为

$stmt->bind_result($comment, $commenttime, $commentuser);

实际上是必要的。

关于PHP mysqli 准备语句无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34888194/

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