我是.NET程序员,很少使用PHP。如何判断此查询是否失败或此查询是否更新0行?我正在使用OpenCart:
public function updateInventory($product_id, $quantity)
{
$query = $this->db->query("Update " . DB_PREFIX . "product SET quantity ='" . $this->db->escape($quantity) . "' WHERE sku='" . $this->db->escape($product_id) . "'");
return "OK";
}
答案 0 :(得分:3)
替换
return "OK";
with(取决于您用来连接数据库的库.mysql,mysqli或pdo)
return mysql_affected_rows();
会为您提供受影响的行。这是从PHP代码方面。 Opencart有一个默认函数,您可以使用:$this->db->countAffected()
但我不确定他们是否通过不同版本保持相同。
来源:http://us3.php.net//manual/en/function.mysql-affected-rows.php
希望一切都清楚。
答案 1 :(得分:2)
您可能没有产品的更新数量,因为您要在查询中比较SKU和product_id。
如果您想通过product_id更新产品数量,则需要将表达式更改为此表达式:
'UPDATE `' . DB_PREFIX . 'product` SET `quantity` =' . (int)$quantity . ' WHERE `product_id`= " . (int)$product_id
" WHERE product_id = some_product_id"代替" WHERE sku = some_product_id"
将SKU
与product_id
语句中的WHERE
进行比较是您的查询更新0行的原因。