在php中循环多维数组并执行mysql插入(股票数据)

2024-06-25

我有一个多维数组,我希望循环遍历它并为数组中的值执行 mysql 数据库插入。

我需要插入到 sql 查询中的数组值是:

candles[0][complete], candles[0][volume], candles[0][mid][h], candles[0][mid][l], candles[0][mid][c]  
candles[1][complete], candles[1][volume], candles[1][mid][h], candles[1][mid][l], candles[1][mid][c] 
candles[2][complete], candles[2][volume], candles[2][mid][h], candles[2][mid][l], candles[2][mid][c] 

数组:

$get_instruments_candles = Array
(
    [instrument] => EUR_USD
    [granularity] => H4
    [candles] => Array
        (
            [0] => Array
                (
                    [complete] => 1
                    [volume] => 4491
                    [time] => 2009-01-01T22:00:00.000000000Z
                    [bid] => Array
                        (
                            [o] => 1.40390
                            [h] => 1.40515
                            [l] => 1.39445
                            [c] => 1.39540  
                        )

                    [mid] => Array
                        (
                            [o] => 1.40440
                            [h] => 1.40565
                            [l] => 1.39470
                            [c] => 1.39565
                        )

                    [ask] => Array
                        (
                            [o] => 1.40490
                            [h] => 1.40615
                            [l] => 1.39495
                            [c] => 1.39590
                        )

                )

            [1] => Array
                (
                    [complete] => 1
                    [volume] => 6866
                    [time] => 2009-01-02T02:00:00.000000000Z
                    [bid] => Array
                        (
                            [o] => 1.39545
                            [h] => 1.39690
                            [l] => 1.38447
                            [c] => 1.38641
                        )

                    [mid] => Array
                        (
                            [o] => 1.39570
                            [h] => 1.39715
                            [l] => 1.38472
                            [c] => 1.38666
                        )

                    [ask] => Array
                        (
                            [o] => 1.39595
                            [h] => 1.39740
                            [l] => 1.38497
                            [c] => 1.38691
                        )

                )

            [2] => Array
                (
                    [complete] => 1
                    [volume] => 12529
                    [time] => 2009-01-02T06:00:00.000000000Z
                    [bid] => Array
                        (
                            [o] => 1.38635
                            [h] => 1.39679
                            [l] => 1.38391
                            [c] => 1.39471
                        )

                    [mid] => Array
                        (
                            [o] => 1.38660
                            [h] => 1.39688
                            [l] => 1.38400
                            [c] => 1.39480
                        )

                    [ask] => Array
                        (
                            [o] => 1.38685
                            [h] => 1.39697
                            [l] => 1.38409
                            [c] => 1.39489
                        )

                )

        )

 )

该数组最多可由 5000 个蜡烛[] 值组成,因此我需要找到在 php 中执行 foreach 或 while 循环的最佳方法,以运行抛出数组值并执行 MySQL 插入

// connect to mysql database

// Do a loop to create and insert the values into database    

// Create sql Query to insert. [0] would be changed to arrays value 0,1,2,3,etc

$sql = "INSERT INTO table (complete, volume, high, low, close) 
VALUES ('{candles[0][complete]}','{candles[0][volume]}','{candles[0][mid][h]}','{candles[0][mid][l]}','{candles[0][mid][c]}')";

您可以使用foreach循环,然后引用循环的当前元素。最好使用准备好的语句。这是 PDO 版本:

$stmt = $link->prepare("INSERT INTO table (complete, volume, high, low, close) 
                        VALUES (:complete, :volume, :high, :low, :close)";
$stmt->bindParam(':complete', $complete);
$stmt->bindParam(':volumn', $volume);
$stmt->bindParam(':high', $high);
$stmt->bindParam(':low', $low);
$stmt->bindParam(':close', $close);

foreach ($get_instrument_candles['candles'] as $candle) {
    $complete = $candle['complete'];
    $volume = $candle['volume'];
    $high = $candle['mid']['h'];
    $low = $candle['mid']['l'];
    $close = $candle['mid']['c'];
    $stmt->execute();
}

mysqli 版本如下所示:

$complete = $volume = $high = $low = $close = null;
$stmt = $link->prepare("INSERT INTO table (complete, volume, high, low, close) 
                        VALUES (?, ?, ?, ?, ?)";
$stmt->bind_param("iiiii", $complete, $volume, $high, $low, $close);

The foreach循环与 PDO 相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在php中循环多维数组并执行mysql插入(股票数据) 的相关文章

  • 如果我有循环引用,我可以触发 PHP 垃圾回收自动发生吗?

    我似乎记得一种设置方法 destruct对于一个类 以这样的方式确保一旦外部对象超出范围 循环引用就会被清除 然而 我构建的简单测试似乎表明这并不像我预期 希望的那样 有没有一种方法可以设置我的类 以便当最外面的对象超出范围时 PHP 可以
  • php imagecopyresampled 添加黑色背景

    我有一个调整图像大小的脚本 它采用 130x81 图像并将其添加到 130x130 图像中 当 imagecopyresampled 函数运行时 它会在剩余的空间中添加黑色背景 即使基本图像是白色的 下面的代码 我真的很感激一些帮助 The
  • 根据送货方式 ID 在 WooCommerce 新订单电子邮件通知中隐藏送货地址

    如果送货标签名为 在洛克菲勒商店提货 我想隐藏送货地址 但要显示其他提货方法 有太多的 id 例如 local pickup 3 我无法过滤 我启用了显示送货地址的功能电子邮件 电子邮件地址 php https github com woo
  • Mysql Workbench 错误“系统错误:61”

    我几个月前安装了mysql 不过 我确实记得曾经成功地使用过 mysql workbench 今天我尝试启动它并收到以下错误 在 读取初始通信数据包 时失去与 MySQL 服务器的连接 系统错误 61 在文本编辑器中打开 etc mysql
  • 致命错误:在非对象上调用成员函数 FetchRow()

    这是我的错误消息致命错误 Call to a member function FetchRow on a non object in C AppServ www hfix include care api classes class min
  • 使用 C++ 连接器的 C++ mysql 连接 bad_alloc

    尝试建立一个简单的 mysql 连接 但得到一个bad alloc即使查看类似的帖子 我也不知道如何解决这个问题 这是我的代码 include
  • PHPExcel - 如何使用 preg_replace 替换文本

    我正在使用 PHPExcel 将数据库中的数据提取到组织好的 Excel 工作表中 除了一件事之外 一切都运转良好 我的数据库条目有时可能包含 HTML 标记 例如 strong strong br p p 等等 所以我设法让这个 PHP
  • 仅当数组为空时 JSON 反序列化才会失败

    在某些情况下 当我收到数组属性之一为空的 JSON 时 反序列化会失败 并引发以下异常 无法将当前 JSON 对象 例如 name value 反序列化为类型 SonicApi ClickMark 因为该类型需要 JSON 数组 例如 1
  • 将我的 JSON 字符串格式化为 PHP 中的
      有序列表

    我正在为一个宠物项目开发一个简单的 CMS 我目前有一个 JSON 字符串 其中包含菜单结构的页面 ID 和父页面 ID 的列表 我现在想将此字符串转换为嵌套或分层列表 有序列表 我尝试过循环查找 但似乎最终得到了过于复杂的子类范围 我正在
  • Rails:将值序列化为逗号分隔而不是 YAML

    我正在寻找一种方法来存储例如的序列化值 列中的 ID 在之前的声明中 这不是最佳设计 该列用于关联记录的 ID 但仅在显示记录时使用 因此不会对该列进行选择进行查询 也不会对此列进行联接任何一个 在 Rails 中 我可以使用以下方法序列化
  • 由变量给定的 C 数组大小

    今天我发现一些代码让我困惑 它做了这样的事情 include
  • SQL LIKE 实际上是如何工作的

    例如 当我有这样的字符串时 ABBBCSLAK JDK ASAAAAFJKDSKJFSDF 当我像这样使用 SQL 时 SELECT FROM table WHERE column LIKE JDK 当服务器访问 JDK 时到底会发生什么
  • PHP:注意:定义会话变量的索引未定义

    我正在制作一个带有电子邮件验证器的注册系统 您典型的 使用此代码来验证 类型的事情 我希望存储一个会话变量 以便当人们在注册页面上完成帐户注册并意外导航回该页面时 它会提醒他们需要在使用前激活帐户 使这个问题如此难以诊断的原因是我以类似的方
  • MySQL 错误:1395 无法从连接视图中删除

    我正在尝试从通过连接多个表生成的视图中删除一条记录 我有一个新用户要在此特定视图上删除和插入 我可以将记录插入视图 但无法从视图中删除 您能指出下面这段 SQL 语句中的错误吗 create view v1 as select a from
  • PHP、MySQL 验证故障且搜索不起作用?

    我创建了一个小的注册粘性表格 一切工作正常 但如果我输入任何错误的值 例如姓名中的数字 年龄中的字母甚至错误的电子邮件格式 那么数据仍然保存在数据库中 我无法找出验证问题 另外一个是搜索选项 每当我在搜索框中输入任何名字或姓氏时 它都应该显
  • 如何摆脱 WordPress function.php 中的“SiteLock-PHP-FILEHACKER-of.UNOFFICIAL”

  • 为什么在这个数组中 NULL 递减而不是负数?

    我已经尝试过这段代码 a array fill 0 4 NULL a 0 a 1 a 2 a 3 var dump a Result array 4 0 gt int 1 1 gt int 1 2 gt NULL 3 gt NULL 为什么
  • Perl 和 MySql 中的 utf8 编码

    我的数据库 MySql 有 utf8 general 排序规则 我正在从数据库访问数据并显示一个网页 用 Perl 开发 它显示瑞典语字符 和不同的字符 我检查了Mysql数据库 在那里我可以看到其中包含 字符的数据 看来 访问数据时存在编
  • 从数组中删除空字符串,同时保持记录而不循环?

    这个问题在这里被问到 从数组中删除空字符串 同时保留非空字符串的索引记录 https stackoverflow com questions 18113243 remove empty strings from array while ke
  • 在 imagick php 中使用 svg 原始数据生成 SVG 图像

    我正在尝试使用从 Fabric js 获取的 svg 原始数据创建 svg 图像 我使用下面的代码使用 svg 原始数据生成 svg 但它无法正常工作 public function generate svg raw svg prefix

随机推荐