加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – ‘字段列表’中的未知列’valueToPass’MySQL错误#:1054

发布时间:2020-12-13 22:30:48 所属栏目:PHP教程 来源:网络整理
导读:我在 mysql中编写了一个存储过程来进行更新.当你在mysql命令行中执行它时(通过Mysql编辑器),这工作正常. 存储过程是: CREATE DEFINER=`root`@`localhost` PROCEDURE `Deduction_Of_PL`( IN P_EMPID VARCHAR(1000))BEGIN DECLARE PresentYearPL VARCHAR(1000
我在 mysql中编写了一个存储过程来进行更新.当你在mysql命令行中执行它时(通过Mysql编辑器),这工作正常.

存储过程是:

CREATE DEFINER=`root`@`localhost` PROCEDURE `Deduction_Of_PL`(
    IN P_EMPID VARCHAR(1000)
)
BEGIN
  DECLARE PresentYearPL VARCHAR(1000);

  set PresentYearPL=(select Present_Year_PL from leave_calculate_pl where employee_id=P_EMPID);

  IF(PresentYearPL<=0) THEN
    UPDATE leave_calculate_pl
    SET Carrie_PL=Carrie_PL-1
    where employee_id=P_EMPID;
  ELSE
    UPDATE leave_calculate_pl
    SET Present_Year_PL=Present_Year_PL-1
    where employee_id= P_EMPID;
  END IF;

END $$

我在PHP中调用相同的存储过程,我也传递输入参数.

$LeaveTypeID_G=$this->getLeaveTypeId();
$query_G="CALL Deduction_Of_PL($LeaveTypeID_G)";

它给出了错误

Unknown column 'parameter_value' in 'field list'  MySQL Error # :1054

请告诉我哪里出了问题,我该如何解决.

解决方法

我刚刚遇到同样的问题.我正在尝试将登录用户的用户名传递给存储过程以将其记录在日志中.

当我直接调用(来自MySQL Workbench)时,存储过程运行正常,并且当我只传递日期/时间时,从PHP工作正常.现在我将此用户名作为字符串传递,但它已经破坏了.

对我来说,修复是将任何字符串参数括在单引号中,如下所示:
$query =“CALL $procedure_name($date_parameter,’$string_parameter’)”;

希望能帮助其他人绊倒这个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读