【问题标题】:How to store MYSQLI query as multidimensional array in this format [duplicate]如何以这种格式将MYSQLI查询存储为多维数组[重复]
【发布时间】:2018-03-19 06:52:05
【问题描述】:

我正在尝试查询数据库 A 并将结果存储为一个数组,然后我将其插入数据库 B。我可以直接移动简单数据,但是由于这个特定查询的复杂性(30 多个左连接),我必须将其存储为数组并将其插入单独的查询中。下面的示例仅包含两个字段,以保持简单并专注于核心问题。

我有工作代码来插入一个存储如下的数组:

$data = array(
    array(  // record 1, or row 1
        "1",
        "Value for field 1.2"
    ),
    array(  // record 2, or row 2
        "2",
        "Value for field 2.2"
    ),
    array(  // record 3, or row 3
        "3",
        "Value for field 3.2"
    ),   

     // etc...

);

不幸的是,我的第一个查询无法像这样存储数据。我使用 PHP 已经很多年了,但我从来没有弄乱过数组。我不确定我做错了什么。使用“print_r($data),这就是我需要数组的结果(这是 print_r() 中 $data 变量的样子):

Array ( [0] => Array ( [0] => 1 [1] => Value for field 1.2 ) [1] => Array ( [0] => 2 [1] => Value for field 2.2 ) [2] => Array ( [0] => 3 [1] => Value for field 3.2 ) ) 

我创建数组的查询与此模式不匹配。 “print_r($new_array)”命令产生这个:

Array ( [0] => Array ( [id] => 37 [post_title] => test1 ) [1] => Array ( [id] => 38 [post_title] => test2 ) [2] => Array ( [id] => 35 [post_title] => test3 ) [3] => Array ( [id] => 42 [post_title] => test4 ) [4] => Array ( [id] => 44 [post_title] => test5 ) [5] => Array ( [id] => 46 [post_title] => test6 ) ) 

这是我将数据放入数组的 MySQL 查询:

$test_sql = "SELECT id, post_title FROM wp_posts where post_type LIKE 'test'";
$resultTest = mysqli_query($con, $test_sql);
//$new_array[] = $row;
while ($row = mysqli_fetch_assoc($resultTest)) {
    $rows[] = $row;
}

如果我了解发生了什么,我正在创建的数组正在为多维数组制作键值对,但我需要的格式不是键值,只是一个值数组。由于我已经可以使用插入查询,因此如果可能的话,我更愿意使用将数据存储在没有键值对的数组中的选择查询,但我愿意接受所有建议。

提前感谢您的好意和帮助!

【问题讨论】:

  • 下次尝试提供一个有意义的题名。只要您能够描述所需的格式而不是仅仅说“这个”,您就可以使用 Google 的东西来帮助您
  • @Your Common Sense - 这真是个好建议。 “如何将 MYSQLI 查询存储为多维数组而不是键/值对”会更有意义吗?我要自己找出新标题是否更有意义,所以我在 VPN 的隐身窗口中使用 Google 的东西来掩盖我的 IP(以免影响我的结果),你知道第一个答案是什么?

标签: php mysql mysqli


【解决方案1】:

您只需将fetch 函数更改为fetch_row

while ($row = mysqli_fetch_row($resultTest)) {
    $rows[] = $row;
}

或以MYSQLI_NUM 作为第二个参数的fetch_array

while ($row = mysqli_fetch_array($resultTest, MYSQLI_NUM)) {
    $rows[] = $row;
}

【讨论】:

  • 效果很好,非常感谢!我可以在 8 分钟内接受你的回答...
猜你喜欢
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
  • 1970-01-01
  • 2019-09-04
  • 2017-04-17
  • 1970-01-01
相关资源
最近更新 更多