prepare 和 row_count()一起使用的误区
生活随笔
收集整理的這篇文章主要介紹了
prepare 和 row_count()一起使用的误区
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天用PREPARE動態處理了UPDATE語句后,
發現ROW_COUNT()函數返回的老是-1 ,檢查了下原來是把row_count()放到了
deallocate?語句后面了。
發現ROW_COUNT()函數返回的老是-1 ,檢查了下原來是把row_count()放到了
deallocate?語句后面了。
| DELIMITER $$ DROP?PROCEDURE IF EXISTS?`test`.`sp_test_prepare`$$ CREATE?DEFINER=`root`@`localhost`?PROCEDURE?`sp_test_prepare`(IN?f_id?int, ?IN?f_name?varchar(64),?IN f_str varchar(255),IN f_str2 varchar(255), ?OUT f_error_code boolean) BEGIN ??-- Determinate whether?update?is?successful?or?failed. ??declare cnt?int?default?0; ??--?Update?to?new record. ??set?@stmt?=?concat('update lk5 set `name` =''',f_name,''', str = ''',f_str,''''); ??set?f_error_code?=?FALSE; ??if char_length(f_str2)?!=?0?then ????set?@stmt?=?concat(@stmt,', str2 = ',f_str2); ??end?if; ??set?@stmt?=?concat(@stmt,?' where id = ',f_id); ??prepare s1?from?@stmt; ??execute s1; ??-- Must be above of the deallocate statement. ? --?只能放在這里才能顯示出正確的結果。 ??set?cnt?=?row_count(); ??deallocate prepare s1; ??-- Get the last record. ??if cnt?>?0?then ????set?f_error_code?=?TRUE; ???end?if; END$$ DELIMITER?; |
本文轉自 david_yeung 51CTO博客,原文鏈接:http://blog.51cto.com/yueliangdao0608/81276,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的prepare 和 row_count()一起使用的误区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 普及vmware连接上网
- 下一篇: 富盛Sbo生产管理简介