2011-05-16 60 views
2

我试图创建一个新的行,其中图像名称与recordID(加'.png')相同。 recordID是一个自动递增的int。获取自动递增的int并插入到另一列

这使得一个新的纪录:

mysql_query("INSERT INTO record (name,age) VALUES ('$name','$age'')"); 

..和这个得到的recordId:

$newRecordID = mysql_insert_id(); 

但如何做粘的recordId的价值为IMAGE_NAME柱(加上 'png格式') ,而不必再次搜索它?

回答

2

你并不需要坚持“巴纽”你的形象可言,你的逻辑意味着每个记录包含有关扩展png图片信息。为什么你甚至需要另一列然后存储图像名称?

第二部分是您为列名使用保留字。关键字NAME被保留,您应该始终避免它。

+0

你是对的。我应该真的把它做成一个布尔值 - 'hasImage'... btw,我用$ name作为例子 – cannyboy 2011-05-18 13:17:15

0

最好我知道MySQL不提供序列操作功能。所以你不能。

您可以做的最好的做法是将其封装在存储过程中以避免往返服务器。

0

也许我在这里失去了财产以后,但

mysql_query("INSERT INTO image (name,id) VALUES ("$newRecordID".'.png','$newRecordID')"); 
+0

你错过了这个:在插入过程中会生成'$ newRecordID'。他希望在插入时访问它,但不能,因为MySQL没有为序列提供'currval()'函数 - 只有auto_increment。 – 2011-05-16 15:30:00

+0

@denis谢谢 – Rob 2011-05-16 15:43:05

相关问题