简体   繁体   English

我无法使用'fetch(PDO :: FETCH_ASSOC)'从表中获取数据

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

Why does fetch (PDO::FETCH_ASSOC) not work properly? 为什么fetch (PDO::FETCH_ASSOC)无法正常工作? How can I get the data I want from the table without a foreach loop? 如何在没有foreach循环的情况下从表中获取所需数据? I have used the $statement variable before to prepare/execute another query. 我已经使用$statement变量准备/执行另一个查询。 Could this be the problem? 这可能是问题吗?

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.');
}

Do this: 做这个:

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;
    }
}

You could also use variable variables: 您还可以使用变量变量:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM