dsjbest2015 2014-05-04 20:23
浏览 53
已采纳

无法返回PDO查询结果:未定义的变量

I am having trouble outputting results from the following PDO query. When I try to process the resultant array I am left with an "Notice: Undefined variable: assets in..." error message.

I've tried numerous incarnations of the function and output but cannot get it to work correctly. Am I missing something here?

THE QUERY

function getAssets() {
global $dbc;
$query = "SELECT * FROM assets ORDER BY company ASC";
try {
    $statement = $dbc->prepare($query);
    $statement->execute();
    $assets = $statement->fetchAll();
    $statement->closeCursor();
    return $assets;
} catch (PDOException $e) {
    $error_message = $e->getMessage();
    display_db_error($error_message);
}
}

THE VIEW

//call function
getAssets();

//display the results
foreach($assets as $asset) {
echo '<tr><td><b>Region:</b></td><td>'.$asset['company'].'</td></tr>';
}

I've tested the array and when I use

print_r($assets);

It will print the entire array, but looping would be useful. I've also tried fetching the data as an object to no avail.

Thank you! ... and thanks for not waxing poetic about global variables :)

  • 写回答

1条回答 默认 最新

  • doutian4046 2014-05-04 20:26
    关注

    $assets is a local variable in the function. To use it outside the function, you have to return it (which you do) and assign that result to a variable in the scope of the loop:

    //call function and use it's result.
    $assets = getAssets();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?