簡體   English   中英

使用准備好的語句返回布爾值的mysqli子查詢

[英]mysqli sub query with prepared statement returning boolean

所以我准備了一個已經可以在mysql中運行的查詢( 在phpmyadmin中進行了測試 ),但是我在使用mysqli類獲取結果時遇到了問題,因為我認為查詢是正確的,所以我很奇怪無法獲取結果。 誰能在以下代碼中指出我的錯誤。

<?php

include_once __DIR__ . '/includes/init.php';

$sql = 'SELECT 
                    `purchase_order`.`id`, 
                    `purchase_order`.`po_date` AS po_date, 
                    `purchase_order`.`po_number`, 
                    `purchase_order`.`customer_id` AS customer_id , 
                    `customer`.`name` AS customer_name, 
                    `purchase_order`.`status` AS po_status, 
                    `purchase_order_items`.`product_id`, 
                    `purchase_order_items`.`po_item_name`, 
                    `product`.`weight` as product_weight,
                    `product`.`pending` as product_pending,
                    `product`.`company_owner` as company_owner,
                    `purchase_order_items`.`uom`, 
                    `purchase_order_items`.`po_item_type`, 
                    `purchase_order_items`.`order_sequence`, 
                    `purchase_order_items`.`pending_balance`, 
                    `purchase_order_items`.`quantity`, 
                    `purchase_order_items`.`notes`, 
                    `purchase_order_items`.`status` AS po_item_status,
                    `purchase_order_items`.`id` AS po_item_id
                  FROM (SELECT id, po_date, po_number, customer_id, status
            FROM purchase_order  GROUP BY  id   DESC  LIMIT ?, ? ) as purchase_order  
                  INNER JOIN customer ON `customer`.`id` = `purchase_order`.`customer_id`  
                  INNER JOIN purchase_order_items ON `purchase_order_items`.`po_id` = `purchase_order`.`id` 
                  INNER JOIN product ON `purchase_order_items`.`product_id` = `product`.`id` 
                   GROUP BY  id';

$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$statement = $mysqli->prepare($sql);
$statement->execute();
$offset = 0;
$perpage = 10;
$statement->bind_param('ii', $offset, $perpage);
$result = $statement->get_result();
while ($row = $result->fetch_assoc())
{
    echo '<pre>';
    print_r($row);
    echo '</pre>';
}

提前致謝。

您准備/綁定並執行語句和值的順序不正確...

$statement = $mysqli->prepare($sql);
$offset = 0;
$perpage = 10;
$statement->bind_param('ii', $offset, $perpage);
$statement->execute();

您需要在execute() bind_param()之前使用bind_param() ,以便它知道要使用的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM