You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Core PHP+SQLite:如何结合两张表展示商品入库出库及结存数据?

解决方案:统计商品采购、销售及结存数据

1. 安全的SQL查询语句(规避注入风险)

直接拼接用户输入会引发SQL注入,必须使用参数绑定。以下SQL通过子查询分别统计指定商品的采购总量(Inward)和销售总量(Outward),用COALESCE处理无记录时的NULL值,确保计算逻辑正常:

SELECT
    (SELECT COALESCE(SUM(quantity), 0) FROM purchase_details_master WHERE item_id = ?) AS Inward,
    (SELECT COALESCE(SUM(quantity), 0) FROM sales_details_master WHERE item_id = ?) AS Outward

2. Core PHP 实现代码

替换原有代码,使用参数绑定执行查询并计算结存:

<?php
// 假设$conn是已建立的SQLite连接实例
$item = $_POST['item'];

// 准备带占位符的SQL语句
$sql = "SELECT
            (SELECT COALESCE(SUM(quantity), 0) FROM purchase_details_master WHERE item_id = ?) AS Inward,
            (SELECT COALESCE(SUM(quantity), 0) FROM sales_details_master WHERE item_id = ?) AS Outward";

// 初始化预处理语句
$stmt = $conn->prepare($sql);
// 绑定参数(两个占位符对应同一个商品ID)
$stmt->bindValue(1, $item, SQLITE3_TEXT);
$stmt->bindValue(2, $item, SQLITE3_TEXT);

// 执行查询并获取结果
$result = $stmt->execute();
$row = $result->fetchArray(SQLITE3_ASSOC);

// 期初库存:根据实际业务逻辑设置,可从库存表读取或固定值
$opening = 0;
// 计算结存
$closing = $opening + $row['Inward'] - $row['Outward'];

// 输出结果示例
echo "商品ID: {$item}<br>";
echo "期初库存(Opening): {$opening}<br>";
echo "采购数量(Inward): {$row['Inward']}<br>";
echo "销售数量(Outward): {$row['Outward']}<br>";
echo "结存(Closing): {$closing}<br>";
?>

3. 扩展说明

  • 若系统存在单独的期初库存表(如stock_master),可修改SQL直接关联查询并计算结存:
    SELECT
        sm.opening AS Opening,
        COALESCE(pdm.total_inward, 0) AS Inward,
        COALESCE(sdm.total_outward, 0) AS Outward,
        sm.opening + COALESCE(pdm.total_inward, 0) - COALESCE(sdm.total_outward, 0) AS Closing
    FROM stock_master sm
    LEFT JOIN (SELECT item_id, SUM(quantity) AS total_inward FROM purchase_details_master GROUP BY item_id) pdm ON sm.item_id = pdm.item_id
    LEFT JOIN (SELECT item_id, SUM(quantity) AS total_outward FROM sales_details_master GROUP BY item_id) sdm ON sm.item_id = sdm.item_id
    WHERE sm.item_id = ?
    
  • 所有用户输入必须通过参数绑定处理,杜绝SQL注入风险。

内容的提问来源于stack exchange,提问作者Imdadullah Babu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 05:54:09