2017-04-30 37 views
-1

任何想法,爲什麼我的getLateInvoicesTotal函數返回下面的錯誤查詢成員函數FETCH_ASSOC(:PHP庫MySQLi問題與錯誤呼叫)布爾

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean

在這裏的功能問題:

function getLateInvoicesTotal() { 
    // Connect to the database 
    $mysqli = new mysqli(DATABASE_HOST, DATABASE_USER, DATABASE_PASS, DATABASE_NAME); 

    // output any connection error 
    if ($mysqli->connect_error) { 
     die('Error : ('.$mysqli->connect_errno .') '. $mysqli->connect_error); 
    } 

    $query = "SELECT SUM(`total`) as `total` FROM invoices WHERE invoice_date < NOW() AND invoice_due_date > NOW() and AND status = 'open'"; 

    // mysqli select query 
    $results = $mysqli->query($query); 

    while($row = $results->fetch_assoc()) { 
     $value = $row["total"]; 
     $value = $value/100; 
     setlocale(LC_MONETARY, 'en_GB.UTF-8'); 
     $value = money_format("%.2n", $value); 
    print $value; 
    } 

    // Frees the memory associated with a result 
    $results->free(); 

    // close connection 
    $mysqli->close(); 
} 

,唯一不同的是,查詢作爲我打開發票功能工作正常,主要內容如下:

function getOpenInvoicesTotal() { 
    // Connect to the database 
    $mysqli = new mysqli(DATABASE_HOST, DATABASE_USER, DATABASE_PASS, DATABASE_NAME); 

    // output any connection error 
    if ($mysqli->connect_error) { 
     die('Error : ('.$mysqli->connect_errno .') '. $mysqli->connect_error); 
    } 

    $query = "SELECT SUM(`total`) as `total` FROM invoices WHERE invoice_date < NOW() AND status = 'open'"; 

    // mysqli select query 
    $results = $mysqli->query($query); 

    while($row = $results->fetch_assoc()) { 
     $value = $row["total"]; 
     $value = $value/100; 
     setlocale(LC_MONETARY, 'en_GB.UTF-8'); 
     $value = money_format("%.2n", $value); 
    print $value; 
    } 

    // Frees the memory associated with a result 
    $results->free(); 

    // close connection 
    $mysqli->close(); 
} 
+0

使用錯誤報告而不是假定查詢成功運行。 – chris85

回答

1

你有狀態行之前一張雙人牀和您的查詢:

$query = "SELECT SUM(`total`) as `total` FROM invoices WHERE invoice_date < NOW() AND invoice_due_date > NOW() and AND status = 'open'"; 

應該

$query = "SELECT SUM(`total`) as `total` FROM invoices WHERE invoice_date < NOW() AND invoice_due_date > NOW() AND status = 'open'" 
+0

謝謝隊友,是啊問題...它返回0.00出於某種原因,所以將檢查查詢 – James