我正在尝试从我的表产品中获取所有行,然后更新product_views, 同时,
SELECT * FROM `product` WHERE `id` = '26' AND `product_enable`= '1' AND UPDATE `product` SET `product_views` = product_views+1;
此代码不起作用,但我认为可以帮助解释我想要做什么,...有没有一个很好的方法来做到这一点,我认为在1个查询中做这个应该对系统有利?
所以,谢谢你的帮助
答案 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
可能因为最后一次错误发生;失踪了(加入)。