2013-07-13 88 views
0

mySql :SQL查詢已成功執行受爲什麼0行受影響的過程中的最後一條語句的程序更新時間MySQL的存儲過程

CREATE DEFINER=`root`@`localhost` PROCEDURE `update_adm`(OUT `sp_out` INT(11), IN `sp_email` VARCHAR(50) CHARSET utf8) 
NO SQL 
BEGIN 
UPDATE `admin` SET `last_try`=curtime() WHERE `email`=sp_email; 
SET sp_out=ROW_COUNT(); 
END 

內的最後一條語句

0行? !

編輯:

當我像[email protected]我在存儲過程中正確的值替換sp_email,它完美的作品!

CREATE DEFINER=`root`@`localhost` PROCEDURE `update_adm`() 
NO SQL 
BEGIN 
UPDATE `admin` SET `last_try`=curtime() WHERE `email`='[email protected]'; 
END 

回答

0

在MySQL命令行中,輸出如預期。

mysql> delimiter $$ 
mysql> CREATE DEFINER=`root`@`localhost PROCEDURE update_adm(... 
    -> END$$ 
Query OK, 0 rows affected (0.16 sec) 

mysql> delimiter ; 

mysql> insert into admin values (null,'foo'); 
Query OK, 1 row affected (0.00 sec) 

mysql> call update_adm(@cnt,'foo'); 
Query OK, 1 row affected (0.00 sec) 

mysql> call update_adm(@cnt,'bar'); 
Query OK, 0 rows affected (0.00 sec) 

當我用存在的電子郵件調用過程時,我收到一條顯示1行受到影響的消息。當我使用確實存在的電子郵件調用過程時,它會返回顯示0行受影響的消息。

我相信你看到的信息來自客戶端界面。你用什麼客戶來調用這個程序?

+0

我使用phpmyadmin – navid

+0

表字段'last_try'沒有改變,當我在phpmyadmin-> sql中使用上述查詢時,查詢工作完美,'last_try'更新 – navid