失败了 - 获取PHP

时间:2017-02-05 15:55:46

标签: php mysqli

我在包含获取值行的行上看到此错误。 错误是:解析错误:语法错误,意外'而' (T_WHILE)

任何人都可以在这里看到我做错了吗?

<?php
    /* prepare statement */
    if ($stmt = $link->prepare("SELECT DISTINCT ticket.TicketuserID, user.UserName,  count(*) AS counter
    FROM ticket
    INNER JOIN user
    ON user.userID= ticket.TicketuserID 
    WHERE `TicketStatus` LIKE 'Active'
    GROUP BY ticket.TicketuserID, user.UserName
    HAVING COUNT(*) >= 1")) {
    $stmt->execute();

    /* bind variables to prepared statement */
    $stmt->bind_result($TicketuserID, $UserName, $counter);


    /* fetch values */
    while ($stmt->fetch()) {
        printf("<a href=\"ticketlist.html\" class=\"list-group-item list-group-item-action\">" . $UserName. " - " . $counter. "</a>");
        //printf("%s %s\n<br>", $UserName, $counter);
    }

        /* close statement */
            $stmt->close();
        }

        /* close connection */
        $link->close();

        ?>

2 个答案:

答案 0 :(得分:0)

第一次错误

您忘了为此代码添加分号:

/* bind variables to prepared statement */
$stmt->bind_result($UserName, $counter)

第二次错误

在你的select语句中,你想要选择3件事。

  

ticket.TicketuserID,user.UserName,count(*)AS counter。

但在bind_result中,您只提供2个变量。您忘了为ticket.TicketuserID添加变量。

所以就这样做:

$stmt->bind_result($ticket, $UserName, $counter);

答案 1 :(得分:0)

在启动while循环之前,您缺少分号。

  

$ stmt-&gt; bind_result($ UserName,$ counter);

请记住,每当您看到意外的“代码开始”时,很可能您没有结束上一行代码。