2011-07-11 56 views
5

Tôi mới sử dụng PHP, nhưng không phải là mới đối với lập trình. Tôi có một vấn đề lạ. Đó là một điều đơn giản, và tôi có cảm giác giải pháp cũng đơn giản, nhưng tôi đã cố gắng hàng giờ mà không gặp may.Vấn đề với truy vấn SQL khi gọi hàm tĩnh từ một hàm tĩnh khác trong cùng một lớp

Tôi có một mô hình lớp người dùng, trong đó có các chức năng sau:

 
public static function byUsername($username) { 
    $row = DB::fetchOne('SELECT * FROM users WHERE username = ?', $username); 
    if (!is_null($row)) { 
     return new User($row); 
    } 
    return null; 
} 

Nó hoạt động như mong đợi ở khắp mọi nơi, trở về một đối tượng tài khoản cho tên người dùng ngay. Ngoại trừ trong chính lớp người dùng: khi tôi gọi hàm với User::byUsername('a_valid_username') hoặc self::, từ một hàm tĩnh khác tiếp tục trong lớp Người dùng, hàm DB::fetchOne() chỉ trả lại null, không có lỗi hoặc ngoại lệ.

Tôi đang thiếu gì?

Trả lời

1

Tôi không thấy sự cố bên trong phương thức byUsernam().

Thực hiện

echo $username; 

hoặc

print_r(debug_backtrace()); 

ngay từ đầu của byUsernam() để tìm hiểu thêm về môi trường được gọi là.

+0

'echo' hoặc' var_dump' không hoạt động trong đó, nhưng 'error_log' thực hiện. '$ username' được đặt và' debug_backtrace' cũng có vẻ tốt. – modemuser

Các vấn đề liên quan