php - phpmyadmin 中的存储过程

标签 php mysql stored-procedures phpmyadmin

我是第一次使用phpmyadmin。我不知道在我的存储过程中我正在使用我的代码。我不知道如何在 phpmyadmin 中创建存储过程。

这是我的代码:

DELIMITER $$
CREATE PROCEDURE sp_1_service_card_report(IN service_card_no INT)
BEGIN
    DECLARE error_1 INT;

    SELECT  COUNT(service_card.customer_id)
    INTO    error_1 
    FROM    service_card
    WHERE   service_card.id =  27;

    DECLARE error_2 INT;

    SELECT  COUNT(service_card.serial_no_id)
    INTO    error_2 
    FROM    service_card
    WHERE   service_card.id =  27;

    IF error_1 > 0 AND error_2 > 0 THEN
     SELECT
       service_card.id as yes from service_card where service_card.id=27;
    ELSE
      SELECT service_card.customer_id as no from service_card.id=27;
    END IF ;

END $$
DELIMITER ;

这是我的错误:

MySQL said: Documentation

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DECLARE error_2 INT;

SELECT COUNT(service_card.serial_no_id)
INTO ' at line 11

你们能帮我解决这个问题吗?我也花了 1 小时在 stackoverflow 上搜索答案。

谢谢。

最佳答案

DECLARE 语句必须首先放置,并且在过程末尾的查询中存在 select 拼写错误:

DELIMITER $$
CREATE PROCEDURE sp_1_service_card_report(IN service_card_no INT)
BEGIN
    DECLARE error_1 INT;
    DECLARE error_2 INT;

    SELECT  COUNT(service_card.customer_id)
    INTO    error_1 
    FROM    service_card
    WHERE   service_card.id =  27;


    SELECT  COUNT(service_card.serial_no_id)
    INTO    error_2 
    FROM    service_card
    WHERE   service_card.id =  27;

    IF error_1 > 0 AND error_2 > 0 THEN
     SELECT
       service_card.id as yes from service_card where service_card.id=27;
    ELSE
      SELECT service_card.customer_id as no from service_card where service_card.id=27;
    END IF ;

END $$
DELIMITER ;

关于php - phpmyadmin 中的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38630447/

相关文章:

php - 在 PHP 函数中传递变量

mysql - 排查mysql中的 "Illegal mix of collations"错误

php - 使用 htaccess 隐藏扩展名不起作用

javascript - 我正在使用 javascript 提交表单,但我无法在 php 页面中获取值

MySQL:查询未发生某事的那一周的日期

mysql - MySql 的递归查询 - 获取所有子树

c++ - MSSQL Server 2012 和来自 C++ dll 的扩展存储过程

sql-server - 什么会导致 linq to sql 认为参数可以为空?

MySql 存储过程由于游标内部错误而无法工作

带数组的 PHP 更新语句