我有一个包含以下字段的表:gallery(picID, picTimeStamp, location)
。
我想要的是,当有人将新图片上传到图库时,该位置将获得与picID
相同的值(picID
通过自动递增获得其值)。
我试过:
"INSERT INTO gallery(picID, picTimeStamp, location) VALUES (null,'.time().',picID)"
但它不起作用。我没有任何错误,位置总是有一个零。
谢谢!
您可能应该使用类似的触发器
CREATE TRIGGER trigger_name BEFORE INSERT ON gallery FOR EACH ROW
BEGIN
DECLARE next_id INT;
SET next_id = (SELECT AUTO_INCREMENT FROM gallery WHERE TABLE_NAME='gallery');
SET NEW.location=next_id;
END
edit:应该在插入触发器之后,而不是之前,因为只有在插入记录之后才能设置auto_increment编号。对不起!
您的表应该是这样的:
id | int | primary key/autoincrement
order | int | index
picTimeStamp | timestamp
然后,如果你想在下面创建一个新条目,通过GET:传递订单号
function createBelow(){
if(isset($_GET["orders"])){
$orders = $_GET["orders"];
$query = "UPDATE links SET orders=orders+1 WHERE orders>$orders ORDER BY orders DESC";
mysql_query($query);
$query = "INSERT INTO `mydb`.`mytable` (`orders`) VALUES ($orders+1);";
mysql_query($query);
}
}
默认值负责id和时间戳,您不需要输入它们。