我们如何在存储过程中使用mysql_affected_rows()

时间:2010-12-16 07:08:30

标签: mysql

我们如何使用mysql_affected_rows()  在存储过程中..

3 个答案:

答案 0 :(得分:20)

使用ROW_COUNT()信息功能。

  

ROW_COUNT()返回行数   由...更改,删除或插入   最后声明如果是更新,   删除或插入。对于其他   声明,价值可能不是   有意义。

     

ROW_COUNT()值与   来自的价值   mysql_affected_rows()C API函数   和mysql的行数   客户端显示以下语句   执行。

答案 1 :(得分:7)

例如

BEGIN
DECLARE countRow INT;
DECLARE roomTypeId INT;
        INSERT INTO room_type (room_type)
SELECT * FROM (SELECT paramRoomType) AS tmp
WHERE NOT EXISTS (
    SELECT room_type_id FROM room_type WHERE room_type = paramRoomType 
) LIMIT 1;
SET countRow =  ROW_COUNT();

IF(countRow >  0) THEN
    SET roomTypeId =  LAST_INSERT_ID();
    INSERT hotel_has_room_type (hotel_id,room_type_id) VALUES (paramHotelId,roomTypeId);
END IF;
END

答案 2 :(得分:3)

您不能在存储过程中使用mysql_affected_rows(),因为它是C API函数。您可以使用FOUND_ROWS()函数来提供类似的功能。有关详细信息,请参阅此link