我有这个存储过程。当我在Wamp上的PhpMyAdmin中执行它时,它说它执行了所有事情。当我尝试在查询中使用它时,它说该函数不在那里。我究竟做错了什么?Mysql存储过程不存在吗?
DELIMITER //
CREATE PROCEDURE `sql_level`(IN exp INT)
BEGIN
SELECT id
FROM `levels`
WHERE experience <= exp DESC LIMIT 1;
id = id-1;
END //
DELIMITER ;
这是我试图运行的查询。
$id = 1;
if($stmt->prepare("SELECT sql_level(attack) FROM `users` WHERE id = ?")) {
$stmt->bind_param('i',$id);
$stmt->execute();
$stmt->bind_result($attack);
$stmt->fetch(); echo "<h1 align='center'>".$attack."</h1>"; }
else { die($stmt->error); }
谢谢。
您是否检查过SP是否可用于您从应用中使用它的用户帐户? phpmyadmin通常有一个超级用户级别的账户来访问mysql,而你的应用很可能不会。 – 2012-04-11 17:28:37
当我尝试在查询中使用它时,它说这个函数不在那里。: - 你能在这里提供你的查询吗? – 2012-04-11 17:28:46
编辑。另外,我是最高用户。它运行在我的本地环境中。 – AlanPHP 2012-04-11 17:32:33