PHP查询更新了行数

时间:2014-06-10 19:05:54

标签: opencart

我是.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";

}

2 个答案:

答案 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"

SKUproduct_id语句中的WHERE进行比较是您的查询更新0行的原因。