0

I have this function :

public function RemplirTab($nomCol)
{
    $username = $this->getDb()->getUsername();
    $sql = "SELECT DISTINCT $nomCol
    FROM nautilus_users_page, nautilus_users_acces, nautilus_users_droit, nautilus_users_privilege, nautilus_users_menu
    WHERE nautilus_users_page.id_page = nautilus_users_acces.id_page
    AND nautilus_users_acces.id_droit = nautilus_users_droit.id_droit
    AND nautilus_users_droit.id_droit = nautilus_users_privilege.id_droit
    AND nautilus_users_page.id_menu = nautilus_users_menu.id_menu
    AND login='$username'";
    $row = $this->getDb()->fetchAssoc($sql, array($nomCol, $username));
    $i = -1;
    $Tab = array();
    while($result = $row)
    {
        $i = $i+1;

        $Tab[$i] = $result[$nomCol];

    }
    return $Tab;
}

Which shows me an error: Error

I use Silex with Doctrine DBAL.

This function was mysqli with this form:

function RemplirTab($nomCol, $login)
{
    $sql = "SELECT DISTINCT $nomCol
            FROM nautilus_users_page, nautilus_users_acces, nautilus_users_droit, nautilus_users_privilege, nautilus_users_menu
            WHERE nautilus_users_page.id_page = nautilus_users_acces.id_page
            AND nautilus_users_acces.id_droit = nautilus_users_droit.id_droit
            AND nautilus_users_droit.id_droit = nautilus_users_privilege.id_droit
            AND nautilus_users_page.id_menu = nautilus_users_menu.id_menu
            AND login='$login'";
    $link = connectdb('nautilus_users');
    $req = execquery($link, utf8_decode($sql));
    $i = -1;
    while($row = $req->fetch_assoc())
    {
        $i = $i+1;

        $Tab[$i] = $row[$nomCol];

    }
    return $Tab;
}
Your Common Sense
  • 156,878
  • 40
  • 214
  • 345
DARLAIVE
  • 1
  • 4
  • 2
    `$result = $row` will always be true in that while loop, so you've created an infinite loop that continuously adds an index to an array so it keeps getting bigger until it runs out of memory. – Jonnix Dec 02 '15 at 16:16
  • Yes there is the problem. With mysqli function works without problems, but now I'm using Doctrine DBAL. With mysqli I was a ExecQuery and while I was in the fetch_assoc, now with DBAL Doctrine I execute the query and I'm doing the live fetch_assoc, so I actually how for while? – DARLAIVE Dec 02 '15 at 16:42

0 Answers0