两个mysql表中的数据插入同步问题

时间:2013-09-05 07:46:38

标签: php mysql asynchronous uploadify

我有两张桌子

CREATE TABLE IF NOT EXISTS `property` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
 `name` longtext NOT NULL
 PRIMARY KEY (`id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=545 ;

其他表是

CREATE TABLE IF NOT EXISTS `property_images` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`property_id` bigint(44) NOT NULL,
`image` varchar(555) NOT NULL
 PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3071 ;

在我的网站中,用户必须保存/上传新的属性。他们的类型属性详细信息和上传图像通过uploadify.A之后,他们点击保存按钮保存属性详细信息。 当他们通过uploadify上传图像时,在服务器端,我获得属性的最大ID并添加1(增加它)并保存该属性的图像。

简单是在属性详细信息之前保存的图像。

问题是当一个用户上传图像时,同时如果其他用户保存了他的属性,则会将这些图像分配给它,因此大多数时候将不同的图像分配给不同的属性。

我可以在这做什么以避免这个问题?

1 个答案:

答案 0 :(得分:0)

您应该使用LAST_INSERT_ID()函数,而不是MAX(id) + 1

INSERT INTO property (name) VALUES ('Property1');

INSERT INTO property_images(property_id, image) VALUES 
(LAST_INSERT_ID(), '/path/to/your/image1.png'),
(LAST_INSERT_ID(), '/path/to/your/image2.png'),
(LAST_INSERT_ID(), '/path/to/your/image3.png');

这是 SQLFiddle 演示