php - magento 建立多个数据库连接而不丢失数组值

标签 php mysql arrays zend-framework magento

我正在尝试连接到两个不同的数据库,因此我的脚本应按如下方式工作

  1. 查找当前登录客户的所有订单,其中订单状态完整,它是虚拟产品,并且具有 juno 订单 ID(此查询工作正常)

  2. 收集所有已找到的订单 ID 并将它们存储在一个数组中(这很好用)

  3. 现在连接到 sales_order_items,并针对属于订单 ID 的每个项目检查数据库是否具有 URL 下载链接,

  4. 如果没有,我将连接到 api --

问题是当我想建立第二个连接时,我似乎丢失了 $orderIds 数组中存储的所有值。

我一直在寻找解决方案,但我对 zend 框架还很陌生

任何帮助将不胜感激

我的脚本如下

        $conn = Mage::getSingleton('core/resource')->getConnection('core_write');
    $result = $conn->query('select * from sales_flat_order WHERE customer_id='.$session->getCustomerId().' AND state="complete" AND is_virtual=1 AND juno_order_id!="null"');

    $orderIds=array();

    foreach ($result as $orderId)
    {
    $orderIds[]=$orderId[entity_id];    

    $itemsonOrder=$conn->query('select * from sales_flat_order_items WHERE order_id='.$order[entity_id]);



    }



// value of first array $orderIds gets lost if i make annother connection using $conn
        echo 'items on order';
        print_r($itemsonOrder);
        echo '<pre>';
        print_r($orderIds);
        echo '</pre>';

最佳答案

好吧,当您连接第二个查询时,您还没有完成第一个查询。继续完成第一个查询,然后开始第二个查询。尝试更多类似这样的事情...

$conn = Mage::getSingleton('core/resource')->getConnection('core_write');
$result = $conn->query('select * from sales_flat_order WHERE customer_id='.$session->getCustomerId().' AND state="complete" AND is_virtual=1 AND juno_order_id!="null"');
$orderIds=array();
foreach ($result as $orderId)
{
  $orderIds[]=$orderId[entity_id];    
}
foreach ($orderIds as $orderId)
{
  $itemsonOrder=$conn->query('select * from sales_flat_order_items WHERE order_id='.$orderId);
}

此外,您应该确保在执行查询时使用参数。像这样连接 sql 字符串可能很危险(有时会让您面临漏洞)。例如,

$conn->query('select * from sales_flat_order_items WHERE order_id='.$orderId);

应该改为

$conn->query('select * from sales_flat_order_items WHERE order_id=?', array($orderId));

另外,你真的需要“选择*”吗???我的意思是,只需选择您需要的列即可。

关于php - magento 建立多个数据库连接而不丢失数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6821129/

相关文章:

arrays - 确定数组中是否存在 a、b、c 以使 a+b+c = z 的算法?

php - 如何在 cloud 9 中安装 php 5.6?

php - 推文中的西里尔符号

php - 如何根据发布日期对数据进行排序?

php - 插入多对多关系设置

MySQL 选择语句 - GROUP BY/Unique

c - 访问 union 数组的 union 成员

php - 无效参数编号 : parameter was not defined Explination

mysql - NOT IN 不在 mysql 程序中工作

javascript - 如何使用 lodash 或 JavaScript 提取过滤后的对象