【问题标题】:Mysql stored procedure where clauseMysql存储过程where子句
【发布时间】:2011-02-08 23:58:18
【问题描述】:

好的,让我再试一次。

query("CALL getemployee('$eml')"); $result = $sql->fetch_array(); ?> 这是我的存储过程:

Delimiter //
Create procedure getemployee(in eml varchar(50))
Begin
  Select * from employees where email = eml;
End//
Delimiter ;

我从浏览器得到的错误: “致命错误:在非对象上调用成员函数 fetch_array() ...”。

我使用 phpmyadmin 版本 3.2.4 和 mysql 客户端版本:5.1.41

【问题讨论】:

  • 显示您的 PHP 代码会更容易提供帮助。
  • 我看不到在您的过程中声明或设置eml 的位置。

标签: php sql mysql stored-procedures


【解决方案1】:

您的CREATE PROCEDURE 声明似乎无效。

您需要为您的过程和您传递的参数命名。因此,您可能想尝试以下示例:

DELIMITER //
CREATE PROCEDURE procName (IN eml varchar(50))
BEGIN
   SELECT * FROM employees WHERE email = eml;
END//    
DELIMITER ;

【讨论】:

    【解决方案2】:

    您使用的eml 变量未定义。不应该是这样吗:

    Create procedure getemployee (in eml varchar(50))
    

    【讨论】:

      【解决方案3】:
      CREATE PROCEDURE get_customers(IN inCustomerIdList VARCHAR(100))
      BEGIN
      
        SELECT first_name, last_name, email FROM tbl_customers  
        WHERE customer_id IN (inCustomerIdList);
      
      END$$
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 1970-01-01
        • 2014-01-24
        • 1970-01-01
        • 2015-01-29
        • 1970-01-01
        相关资源
        最近更新 更多