SELECT AND THEN UPDATE COUNT number mysqli

时间:2014-03-24 21:15:43

标签: php mysql

我正在尝试从我的表产品中获取所有行,然后更新product_views, 同时,

SELECT * FROM `product` WHERE `id` = '26' AND `product_enable`= '1' AND UPDATE `product` SET `product_views` = product_views+1;

此代码不起作用,但我认为可以帮助解释我想要做什么,...有没有一个很好的方法来做到这一点,我认为在1个查询中做这个应该对系统有利?

所以,谢谢你的帮助

2 个答案:

答案 0 :(得分:4)

你刚才做错了:

UPDATE `product` SET `product_views` = 
     (SELECT product_views FROM `product` WHERE `id` = '26' AND `product_enable`= '1')+1;

答案 1 :(得分:2)

使用mysqli多查询:http://www.php.net/manual/en/mysqli.multi-query.php

$sql = "SELECT * FROM `product` WHERE `id` = '26' AND `product_enable`= '1'; ";
$sql.= "UPDATE `product` SET `product_views` = product_views+1;";

if (!$mysqli->multi_query($sql)) {
    echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}

do {
    if ($res = $mysqli->store_result()) {
        var_dump($res->fetch_all(MYSQLI_ASSOC));
        $res->free();
    }
} while ($mysqli->more_results() && $mysqli->next_result());

更新2:

有可能,请查看:http://php.net/manual/en/mysqli.quickstart.multiple-statement.php

可能因为最后一次错误发生;失踪了(加入)。