简体   繁体   English

如何在mysql中创建存储过程

[英]How to create a stored procedure in mysql

I have created the following stored procedure in mysql... 我已经在mysql中创建了以下存储过程...

DELIMITER //
CREATE PROCEDURE GetMember(IN in_memberID int)
BEGIN
    SELECT *
    FROM Members
    WHERE MemberID = in_memberID;
END//



$result = mysql_query("CALL GetMember(".$memberID.")") or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
    echo $row['Name'] . "</br>";
}

But when I call it from php it returns all records in the Members table, what am I doing wrong? 但是,当我从php调用它时,它返回Members表中的所有记录,我在做什么错呢?

EDIT: When I try to call the query within phpmyadmin I get this error 编辑:当我尝试在phpmyadmin中调用查询时,出现此错误

CALL GetMember(1);

#1312 - PROCEDURE myDb.GetMember can't return a result set in the given context

what version of PHP? 什么版本的PHP?

PHP 5.2.3 and PHP 5.2.4 have a bug with procedures: https://bugs.php.net/bug.php?id=42548 PHP 5.2.3和PHP 5.2.4的程序存在错误: https : //bugs.php.net/bug.php?id=42548

use Database_Name;

DELIMETER $$

DROP PROCEDURE IF EXISTS Proc$$
CREATE PROCEDURE Proc()
       BEGIN
               DECLARE x INT;
               SET x = 1;
               WHILE x <= 110000 DO
                   INSERT INTO Table_Name (word, mean) VALUES ('a', 'a mean');
                   SET x = x + 1;
               END WHILE;
       END$$

DELIMITER ;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM