使用 mysql 存储过程更新多行

update multiple rows using mysql stored procedure

$UserId = $obj ["userid"];
$CalendarId = $obj ["arrayOfCalendarIdInStrings"];
$Calendars = explode ( ",", $CalendarId );
$Count = count ( $Calendars );
for($i = 0; $i < $Count; $i ++) {
                        // Update Query
            $query = "UPDATE calendars SET `isSelected` = '1' WHERE `calendar_id` = '$Calendars[$i]' AND  user_id='$UserId'";
            $update = mysql_query ( $query );
        }

如何转换为Mysql存储过程

要将查询转换为存储过程:

DELIMITER //

DROP PROCEDURE IF EXISTS myProcedure//
CREATE PROCEDURE myProcedure (
  IN vCalendarID int(11),
  IN vUserID int(11)
)

BEGIN

 UPDATE calendars SET `isSelected` = '1' WHERE `calendar_id` = vCalendarID AND  user_id = vUserID;

END//

DELIMITER ;

然后在您的 php 脚本中,您需要执行以下操作:

$query = "CALL myProcedure('".$Calendars[$i]."','".$UserId."');";
$update = mysql_query ( $query );

请注意,mysql_* 函数已弃用。请改用 mysqli 或 PDO。