gpt4 book ai didi

stored-procedures - Magento:创建存储过程

转载 作者:行者123 更新时间:2023-12-04 07:50:21 26 4
gpt4 key购买 nike

我正在尝试创建一个 Magento 模块安装程序,它将反过来创建一个存储过程。

该过程的代码已通过:Toad、phpmyadmin 和 mysql.exe 命令行运行。它适用于所有 3。但是,当 Magento 在安装过程中执行它时它会失败。

错误:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax;

Magento 代码:
    $installer = $this;
$installer->startSetup();
$sql = <<<____SQL
DELIMITER //

CREATE PROCEDURE GetStuff(
IN pSomeId int(11)
)
BEGIN
DECLARE pOtherId INT;

SELECT some_var INTO pOtherId FROM some_table WHERE id = pSomeId;
END;//
DELIMITER ;
____SQL;

$installer->run($sql);
$installer->endSetup();

当然,两者之间还有一些其他代码,但简化并没有改变错误。
我的猜测是,这与分界线以及 PDO/Magento 如何对待它们有关。谢谢你。

最佳答案

我想到了。

我不需要使用任何分隔符,PDO 可以自己处理它们。

但我确实需要将方法从查询(由安装程序使用)切换到执行。

所以,我最终得到:

 $write = Mage::getSingleton('core/resource')->getConnection('core_write');
$write->exec($sql);

关于stored-procedures - Magento:创建存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6282391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com