【发布时间】:2011-12-26 05:04:41
【问题描述】:
我必须将存储过程添加到 MySQL 数据库。
问题是主机提供 phpMyAdmin 来管理数据库。
我在网上搜索,想法是运行创建程序的MySQL本机语句,但是由于程序的代码经常可能有;,所以我们必须更改MySQL中的分隔符。
phpMyAdmin 没有这个选项。有没有人尝试创建存储过程手动设置锚点,或者其他有效的方法?
【问题讨论】:
标签: php mysql stored-procedures phpmyadmin
我必须将存储过程添加到 MySQL 数据库。
问题是主机提供 phpMyAdmin 来管理数据库。
我在网上搜索,想法是运行创建程序的MySQL本机语句,但是由于程序的代码经常可能有;,所以我们必须更改MySQL中的分隔符。
phpMyAdmin 没有这个选项。有没有人尝试创建存储过程手动设置锚点,或者其他有效的方法?
【问题讨论】:
标签: php mysql stored-procedures phpmyadmin
有办法,看这个链接:http://blog.nth-design.com/2009/02/25/creating-sp-in-phpmyadmin/
引用该链接
1.打开phpMyadmin。
2.选择要使用的数据库。
3.打开 SQL 选项卡。
4. 选择存储过程脚本中 DELIMITER 语句之间的所有 SQL 语句。 不要包含 DELIMITER 语句!这是我的示例脚本的样子:
DROP PROCEDURE IF EXISTS spFoo $$
CREATE PROCEDURE spFoo ()
BEGIN
SELECT 'Foo' FROM DUAL;
END $$
5.在分隔符字段中,SQL 编辑器文本区域下方,输入 $$ 作为您的分隔符。
【讨论】:
尝试使用dbForge Studio for MySQL 中的可视对象编辑器创建/编辑存储过程和其他 MySQL 对象。速成版是免费的。
【讨论】:
您可以使用delimiter $$ 手动设置分隔符,其中$$ 是您选择的分隔符。这适用于我与 phpMyAdmin 的共享主机。完成后,您应该记得将其设置回;。
【讨论】:
为什么每个人都尝试使用可视化工具作为控制台?!?有一个更简单的方法:
转到您的数据库,然后查找“更多”
然后将显示此屏幕。如果您创建了任何存储过程,它们将被列出
要添加新的一键“添加例程”
【讨论】:
创建过程 sp_helpme 开始 从 my_table 中选择 *; 结尾 //
你必须改变';'到 '//' 在 phpmyadmin 中的分隔符框中。 成功执行后还原分隔符。
【讨论】:
我在使用 PHPMyadmin 中的“例程”功能时遇到了问题,因为它一直给我误报,所以我改为通过“SQL”选项卡进行操作。
CREATE PROCEDURE GetUserPwd(email VARCHAR(320), pass VARCHAR(128))
BEGIN
DECLARE userid INT(3) DEFAULT 0;
DECLARE password_equal INT(3) DEFAULT 0;
DECLARE output VARCHAR(30);
SELECT id INTO userid FROM members WHERE user_email = email;
IF userid != 0 THEN
SELECT user_pass = pass INTO password_equal FROM members WHERE id = userid;
IF password_equal = 0 THEN
SET output = 'not exist';
ELSE
SET output = 'exist';
END IF;
END IF;
SELECT output;
END
在“分隔符”文本框中,输入“$$”。保存。
之后,转到“例程”选项卡并单击“执行”并在出现提示时输入您的输入。
【讨论】: