我有一个表格,您可以在其中选择类别,并将返回该类别中的产品
$query = $this->db->query("SELECT id, name FROM " . DB_PREFIX . "shared_products_product WHERE category = '" . (int)$id . "' AND status != 2");
结果
Array
(
[0] => Test 1
[1] => Test 2
[2] => Test 3
)
比只能选择测试1和测试2插入不同的表
$this->db->query("INSERT INTO " . DB_PREFIX . "shared_products_view SET product_id = '" . (int)$product_id . "', shared_product_id = '" . (int)$shared_product_id . "', category_id = '" . (int)$cat_id . "'");
当我运行第一个查询时,如何获得仍未插入到当前category_id的shared_products_view中的结果?
答案 0 :(得分:0)
您需要连接表并检查值是否已经存在
喜欢
$query = $this->db->query("SELECT `spp`.id, `spp`.name
FROM " . DB_PREFIX . "shared_products_product `spp`
LEFT JOIN " . DB_PREFIX . "shared_products_view `spv` ON `spp`.`id`=`spv`.shared_product_id
WHERE category = '" . (int)$id . "' AND status != 2 AND `spv`.shared_product_id IS NULL");
答案 1 :(得分:0)
运行第二个查询INSERT时,将添加该行,除非出现错误。我想到的一件事是您似乎将整数作为字符串插入。
最好使用PDO和bindValue()并明确声明它是整数。
如果我理解正确,那么您想知道INSERT是否成功。 (对吗?)
在这种情况下,请检查命令$ this-> db-> query(“ INSERT ...”)的结果。
您没有提到$ this-> db是什么数据库句柄,但是我希望它在失败时将返回false。
我强烈建议您在继续之前先阅读本动手指南: