0

如果我这样做

include('orderConst_pdo_connect.php');
switch  ($type){
    case "retrieve":
        retrieve_address($customer_id);
        break;
    case "new":
        new_address($customer_id, $address);
        break;
    case "update":
        update_address($customer_id, $address_id);
        break;
    case "delete":
        delete_address($customer_id, $address_id);
        break;              
}

function retrieve_address($customer_id){
    $sth = $dbh->prepare("
    SELECT * 
    FROM   address 
    WHERE  customer_id = :customer_id 
    ORDER  BY CASE 
                WHEN use_frequency IS NULL THEN id 
                ELSE use_frequency 
              END ASC");

.... 

}

我得到错误

Fatal error: Call to a member function prepare() on a non-object

直到我把include('orderConst_pdo_connect.php')函数放在里面。有没有办法包含文件并在页面顶部授予对它的函数访问权限,或者我是否需要将它包含在使用它的每个函数中?

4

2 回答 2

3

在包含文件中定义的变量,默认情况下在函数中不可用。您可以授予您的函数访问此变量的权限global $dbh

于 2013-02-12T19:46:44.420 回答
1

而不是使用global,只需执行以下操作:

function retrieve_address($dbh, $customer_id) {
    // blah
}
于 2013-02-12T20:20:38.763 回答