【问题标题】:Why isn't this mysqli query fetching?为什么不获取此 mysqli 查询?
【发布时间】:2016-01-24 15:02:10
【问题描述】:

为什么这个表没有被抓取?在这个问题上,我已经把眼睛拉了一个多小时。我要疯了。

我已经在 phpmyadmin 中测试了查询,它正在工作......

$query = "
SELECT e.earning_link_id, COUNT(e.earning_id) AS visits, ABS(TIMESTAMPDIFF(DAY, now(), l.link_created)) AS age, l.link_link, o.owner_id
FROM earnings AS e
INNER JOIN links AS l
ON e.earning_link_id = l.link_id
LEFT JOIN owners as o
ON l.link_id = o.owner_link_id
WHERE o.owner_id > 0
GROUP BY earning_link_id
ORDER BY COUNT(e.earning_id) / ABS(TIMESTAMPDIFF(DAY, now(), l.link_created)) DESC
LIMIT 10
";
if ($statement = $mysqli->prepare($query))
{
        $statement->execute();
        $statement->store_result();
        $statement->bind_result($link_id, $link_visit_count, $link_age, $link_link, $link_owner_id);

        echo '<table>';
        while ($statement->fetch())
        {
            echo '<tr>';
                echo '<td><i class="fa fa-link"></i> '.$link_link.'</td>';
            echo '</tr>';
        }
        echo '</table>';

    $statement->free_result();
    $statement->close();
}

【问题讨论】:

  • 您检查过错误吗?你的if 是真的吗?
  • 没关系,我找到了问题所在。毕竟是查询。即使您返回零结果,Phpmyadmin 也会保留旧结果表.....所以我正在查看旧结果.....*高音尖叫*

标签: php mysqli


【解决方案1】:

尝试删除 ->store_result();

<?php   
   $mysqli = new mysqli("localhost", "root", "", "test");
    $query = " SELECT 1 as id, 2 AS visits, 3 AS age, 4 as link_link,5 as owner_id  ";
    if ($statement = $mysqli->prepare($query))
    {
            $statement->execute();
            $statement->bind_result($link_id, $link_visit_count, $link_age, $link_link, $link_owner_id);

            echo '<table>';
            while ($statement->fetch())
            {
                echo '<tr>';
                    echo '<td><i class="fa fa-link"></i> '.$link_id.'</td>';
                    echo '<td><i class="fa fa-link"></i> '.$link_visit_count.'</td>';
                    echo '<td><i class="fa fa-link"></i> '.$link_age.'</td>';
                    echo '<td><i class="fa fa-link"></i> '.$link_link.'</td>';
                    echo '<td><i class="fa fa-link"></i> '.$link_owner_id.'</td>';
                echo '</tr>';
            }
            echo '</table>';

        $statement->close();
    }

    $mysqli->close();

?>

这个工作,测试它并为您的查询进行更改

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多