我可以';t使用';fetch(PDO::fetch_ASSOC)';


I can't get data from a table using 'fetch(PDO::FETCH_ASSOC)'

为什么fetch (PDO::FETCH_ASSOC)不能正常工作?如果没有foreach循环,我如何从表中获得我想要的数据?我以前使用过$statement变量来准备/执行另一个查询。这可能是问题所在吗?

try
{
    $database = new PDO ('mysql:host=localhost;dbname=youdonotneedtoknow;charset=utf8', 'youdonotneedtoknow', 'youdonotneedtoknow');
    $database -> setAttribute (PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $database -> setAttribute (PDO::ATTR_EMULATE_PREPARES, true);
    //Read
    $statement = $database -> prepare ('SELECT * FROM edit');
    $statement -> execute ();
    while ($row = $statement -> fetch (PDO::FETCH_ASSOC))
    {
        $windowTitle = $row ['windowTitle'];
        $bodyBackgroundColour = $row ['bodyBackgroundColour'];
        $divisionBackgroundColour = $row ['divisionBackgroundColour'];
    }
}
catch (PDOException $exception)
{
    die ('Error: ' . $exception -> getMessage () . '<br><br>' . 'Por favor diríjase a "index.php" en este mismo directorio y contacte a su administrador.');
}

这样做:

while ($row = $statement -> fetch (PDO::FETCH_ASSOC))
{
    switch ($row['id']) {
        case 'windowTitle':
            $windowTitle = $row ['value'];
            break;
        case 'bodyBackgroundColour':
            $bodyBackgroundColour = $row['value'];
            break;
        case 'divisionBackgroundColour':
            $divisionBackgroundColour = $row['value'];
            break;
    }
}

您也可以使用可变变量:

while ($row = $statement -> fetch (PDO::FETCH_ASSOC))
{
    ${$row['id']} = $row['value'];
}