gpt4 book ai didi

php - 从 PHP 创建存储过程

转载 作者:行者123 更新时间:2023-11-29 08:35:28 27 4
gpt4 key购买 nike

我正在创建一个数据库设置脚本,它可以动态创建和设置数据库。我使用的 mysql 用户拥有创建存储过程的完全权限。我的数据库服务器与应用程序服务器不同。

我能够创建用户,然后数据库,然后选择数据库,然后创建表,然后将一些数据插入表中,然后创建 View 等。但是最后当我创建存储过程时我遇到了问题。

按照sql创建过程

CREATE DEFINER=`newuser`@`192.168.0.10` PROCEDURE `AppCounts_Stagewise_Monthly_Weekly` (IN FILTERTYPE INTEGER)
BEGIN
IF(FILTERTYPE = 0) THEN
SELECT base_user_id, stage, COUNT(vw_application.id) AS app_counts, WEEK(DATE) AS `week`, YEAR(DATE) AS `year`
FROM vw_application
WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <= DATE(DATE)
AND DATE(DATE) <= CURDATE() GROUP BY vw_application.stage, base_user_id;
ELSE
SELECT base_user_id, stage, COUNT(vw_application.id) AS app_counts, MONTH(DATE) AS `month`, YEAR(DATE) AS `year`
FROM vw_application
WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= DATE(DATE) AND DATE(DATE) <= CURDATE() GROUP BY vw_application.stage, base_user_id;
END IF;
END;

像上面这样的创建过程的 SQL 由特殊分隔符分隔并放入文件中。我打开文件并通过分隔符分解每个创建脚本,以获取数组中的每个创建语句并使用 zend db 适配器执行它们。

$data = file_get_contents($this->_specimenDbFiles['ROUTINES']);
$data = explode('--', $data);

foreach($data as $key => $value) {
$clientDbAdaptor->query($value);
}

最佳答案

我刚刚设法让它工作。

基本上我所做的就是在我的数据库服务器上运行并解决了错误。

mysql_upgrade -u root -p 

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

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