【发布时间】: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(以免影响我的结果),你知道第一个答案是什么?