【发布时间】:2013-04-26 09:38:39
【问题描述】:
我有这 3 个查询:
$sql1 = "INSERT INTO bag(bag_id, chara_id, item_id, item_qty)VALUES(NULL,:id,:item_id,'1')";
$sql2 = "UPDATE chara SET chara_gold = chara_gold - :gold WHERE chara_id = :id";
$sql3 = "UPDATE shop SET item_qty = :qty WHERE item_id = :item_id";
并拥有这 3 张桌子:
-
角色
+----------+------------+----------------+-------------+------------+----------+----------+-----------+-----------+ | chara_id | chara_name | chara_class_id | chara_level | chara_gold | chara_hp | chara_mp | chara_atk | chara_def | +----------+------------+----------------+-------------+------------+----------+----------+-----------+-----------+ | 1 | LawrenceX | 1 | 1 | 1000 | 1000 | 1000 | 7 | 3 | | 3 | Viscocent | 2 | 1 | 1000 | 900 | 1100 | 5 | 5 | | 4 | Piatos | 1 | 1 | 1000 | 1000 | 1000 | 7 | 3 | | 5 | Hello | 1 | 1 | 1000 | 1000 | 1000 | 2 | 8 | | 6 | Sample | 3 | 1 | 1000 | 1100 | 900 | 9 | 1 | | 8 | Sampuro | 2 | 1 | 1000 | 1500 | 100 | 5 | 5 | | 12 | fail | 2 | 1 | 1000 | 900 | 100 | 5 | 5 | +----------+------------+----------------+-------------+------------+----------+----------+-----------+-----------+ -
包
+---------+-----------------+------------+ | item_id | item_name | item_price | +---------+-----------------+------------+ | 0 | Halberd | 400 | | 1 | Axe | 200 | | 2 | Wooden Sword | 225 | | 3 | Dagger | 55 | | 4 | Bow | 120 | | 5 | Helmet | 155 | | 6 | Tunic | 50 | | 7 | Armour | 150 | | 8 | Necklace | 199 | | 9 | Studded Leather | 240 | +---------+-----------------+------------+ -
商店
+---------+---------+------------+----------+ | shop_id | item_id | item_price | item_qty | +---------+---------+------------+----------+ | 1 | 1 | 200 | 99 | | 2 | 2 | 225 | 99 | | 3 | 3 | 55 | 99 | | 4 | 4 | 120 | 99 | | 5 | 5 | 155 | 99 | | 6 | 6 | 50 | 99 | | 7 | 7 | 150 | 99 | | 8 | 8 | 199 | 99 | +---------+---------+------------+----------+
场景:
- 我想在袋子
item_id列中添加一个项目,带有chara's id - 然后将
charas gold减去他购买的商品金额(基于店铺item_price)。 - 然后在
shop表中将所购买商品的item_qty减1。
可以在 1 个查询中完成吗? 我也想用transact。
【问题讨论】:
标签: php mysql insert sql-update