[英]Using a MySQL trigger to update all fields matching a condition
我想做的是將每個插入查詢的列設置為$i
的最新值,我以前從未在MySQL中使用過觸發器,但是我相信這是最簡單的方法。 我願意接受其他想法和建議。 現在我有:
$i = 1;
foreach($_FILES["upload_project_images"]["name"] as $key => $name) {
$p_image_query = "
delimiter |
CREATE TRIGGER update_start_num BEFORE INSERT ON project_images
FOR EACH ROW
BEGIN
UPDATE `project_images` SET `NEW.i_start_num` = '$i' WHERE `i_project_id` = '$prject_id' AND 'i_type' = '2';
END |
delimiter;
INSERT INTO `project_images` (i_name, i_type, i_project_id,i_start_num) VALUES ('$upload_project_images_name', '2', '$project_id','$i');";
$result=mysql_query($p_image_query) or die(mysql_error());
$i++;
}
我的想法是i_start_num
將等於最后一個$i
因此我可以在更新查詢時從那里i_start_num
。
我的第一個想法是在另一個查詢之后運行一個查詢,但是我嘗試都不起作用:
$i = 1;
foreach($_FILES["upload_project_images"]["name"] as $key => $name) {
//insert the file data into the database
$p_image_query = "INSERT INTO `project_images` (i_name, i_type, i_project_id,i_start_num) VALUES ('$upload_project_images_name', '2', '$project_id','$i')"
$result=mysql_query($p_image_query) or die(mysql_error());
$i++;
//update the starting image id number on all project images
$p_update_startnum_qry ="UPDATE `project_images` SET `i_start_num` = '$i' WHERE `i_project_id` = '$prject_id' AND 'i_type' = '2'";
$p_update_startnum_qry_result=mysql_query($p_update_startnum_qry) or die(mysql_error());
}
這也失敗了。
嗯,也許試試這個:
// pseudo code
INSERT INTO `project_images` (i_name, i_type, i_project_id,i_start_num)
VALUES ('$upload_project_images_name', '2', '$project_id','$i')
ON DUPLICATE KEY UPDATE `project_images`
SET `i_start_num` = '$i'
WHERE `i_project_id` = '$prject_id' AND 'i_type' = '2'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.