插入触发器错误后的MySQL PHP游戏

灵魂之火

我正在使用PHP和MySQL创建一个简单的基于文本的RPG,并且在尝试利用AFTER INSERT触发器时遇到了一个奇怪的错误。

在将新生物插入到生物表中之后,我想使用触发器将一条新记录也插入到商店表中,其中包含与我添加的生物有关的战利品信息。具体来说,当我在生物中插入一条记录时,我希望它取“ gloot”并将其放入存储表中。

生物表代码:

CREATE TABLE IF NOT EXISTS `creatures` (
      `id` int(3) NOT NULL AUTO_INCREMENT,
      `name` varchar(21) NOT NULL,
      `hpoints` mediumint(3) NOT NULL,
      `maxhp` mediumint(3) NOT NULL,
      `attack` mediumint(3) NOT NULL,
      `defense` mediumint(3) NOT NULL,
      `experience` int(3) NOT NULL,
      `level` mediumint(3) NOT NULL,
      `gloot` varchar(100) NOT NULL,
      `gold` mediumint(3) NOT NULL,
      `isloot` mediumint(3) NOT NULL,
      PRIMARY KEY (`id`)
    )

商店表的代码:

CREATE TABLE IF NOT EXISTS `store` (
  `name` varchar(50) NOT NULL,
  `stats` varchar(30) DEFAULT NULL,
  `statadd` smallint(3) DEFAULT NULL,
  `price` int(11) DEFAULT NULL,
  `amount` smallint(5) DEFAULT NULL,
  `randid` int(9) NOT NULL,
  `type` varchar(30) DEFAULT NULL,
  `location` varchar(100) DEFAULT NULL
) 

最后,这是触发代码

DELIMITER $$
DROP TRIGGER IF EXISTS itemToStore
CREATE TRIGGER itemToStore
AFTER INSERT ON `creatures`
FOR EACH ROW BEGIN
IF (New.gloot != “”) THEN
INSERT INTO  `store`  (`name`, `statadd`, `price`, `amount`, `randid`)
VALUES('New.gloot', '0', '0',’0’, ROUND( 100000000 * RAND( ) ));
END IF;
END;
$$

所以,我要说的是,如果gloot不为空,则将其插入到store表中。

触发器可以很好地添加,但是在我插入生物表之后引发的错误是一个奇怪的错误。我得到:

MySQL说:#1054-未知列'“â€

为了完整起见,这是我正在使用的insert语句:

INSERT INTO  `legends`.`creatures` (

`id` ,
`name` ,
`hpoints` ,
`maxhp` ,
`attack` ,
`defense` ,
`experience` ,
`level` ,
`gloot` ,
`gold` ,
`isloot`
)
VALUES (
NULL ,  'dragon',  '200',  '200',  '10',  '10',  '1',  '1',  'Dragon Bones',  '250',  '50'
)

哎呀,好多。谢谢您的宝贵时间!

于尔根

更换引号'

DELIMITER $$
DROP TRIGGER IF EXISTS itemToStore $$

CREATE TRIGGER itemToStore AFTER INSERT ON `creatures`
FOR EACH ROW BEGIN
   IF (NEW.gloot <> '') 
   THEN
      INSERT INTO  `store`  (`name`, `statadd`, `price`, `amount`, `randid`)
      VALUES (NEW.gloot, '0', '0','0', ROUND( 100000000 * RAND( ) ));
   END IF;
END;
$$

您还忘记了$$drop命令添加

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL触发器性能与PHP手动插入

来自分类Dev

插入后的MySQL触发器

来自分类Dev

插入MySQL触发器(错误)

来自分类Dev

从PHP代码创建触发器时的语法错误

来自分类Dev

如何获取PHP中的SQL Server触发器错误?

来自分类Dev

在触发器内按下操作键后,销毁属于预制件的游戏对象

来自分类Dev

退出触发器后如何生成对撞机?(炸弹人风格的游戏)

来自分类Dev

插入触发器导致变异表错误后

来自分类Dev

插入触发器后无法在MySQL中工作

来自分类Dev

插入触发器后的MySQL-MyISAM与InnoDB

来自分类Dev

插入触发器后无法在Mysql中工作

来自分类Dev

使用PDO / PHP创建MYSQL触发器

来自分类Dev

从外部启动PHP脚本的MYSQL触发器

来自分类Dev

php jelly bean游戏-错误的排序

来自分类Dev

PHP / MySQL“测验”游戏-表单输入值

来自分类Dev

保存Flash游戏成绩PHP / MySQL

来自分类Dev

MySQL触发器在插入时报告错误

来自分类Dev

MySQL触发器:条件插入语法错误

来自分类Dev

插入或删除后Oracle触发器

来自分类Dev

创建“插入后”触发器

来自分类Dev

插入触发器产生错误结果

来自分类Dev

MySQL触发器插入副本的行

来自分类Dev

MySQL触发器插入问题

来自分类Dev

在插入时创建MySQL触发器

来自分类Dev

插入前创建Mysql触发器

来自分类Dev

插入前创建Mysql触发器

来自分类Dev

插入Mysql时的总和触发器

来自分类Dev

在插入带有触发器的错误后添加列,错误1422

来自分类Dev

触发器(更新后)导致错误?