使用 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。
$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。