我正在尝试查询数据库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),这就是我需要数组的结果(这是$ data变量与print_r()的相似之处):
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数据放入数组的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;
}
如果我理解发生了什么,我正在创建的数组是为多维数组创建键值对,但我需要的格式不是键值,只是一个值数组。由于我已经有插入查询工作,我宁愿使用选择查询将数据存储在没有键值对的数组中,如果可能的话,但我对所有建议持开放态度。
提前感谢您的善意和帮助!
答案 0 :(得分:2)
您需要做的就是将fetch
功能更改为fetch_row
:
while ($row = mysqli_fetch_row($resultTest)) {
$rows[] = $row;
}
或fetch_array
以MYSQLI_NUM
作为第二个参数:
while ($row = mysqli_fetch_array($resultTest, MYSQLI_NUM)) {
$rows[] = $row;
}