【问题标题】:How to execute stored procedure in loop如何在循环中执行存储过程
【发布时间】:2016-12-03 16:36:23
【问题描述】:

我遇到了一个问题。请看下面的代码:

// $data having 1000 entries
foreach($data as $key=>$value) {     
    $resultStore = $this->db->query("call get_parents(" . $value['id'] . ")");

    $dataStore = $resultStore->fetchAll(PDO::FETCH_ASSOC);    
}

问题是循环只执行一次。 请注意,我使用的是 Phalcon 框架。

【问题讨论】:

  • 警告:使用 PDO 时,您应该使用带有占位符值的 prepared statements,并且仅将任何用户数据作为参数提供给 execute 。在此代码中,您可能有严重的SQL injection bugs。有关如何避免此类问题的建议,请参阅PHP The Right Way

标签: php mysql stored-procedures pdo phalcon


【解决方案1】:

您的索引是id,但这没有意义,因此您使用相同的未定义值调用存储过程。修复存储过程的参数。

【讨论】:

  • 你怎么能确定$value['id']没有价值?
  • HI AI Bundy,我正在获取 $value['id'] 的值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 2010-09-15
  • 1970-01-01
  • 2020-10-11
相关资源
最近更新 更多