PHP MySQL从数组键插入多维关联数组构建查询

时间:2017-07-27 11:28:28

标签: javascript php mysql json

我已尝试过这两个链接,但我没有在$ fields和$ newdata中获得预期的变量内容

**这个问题在这里开发了一个新问题** PHP how to extract keys names and values from associative array for mysql query(正如我所说的那样,新手并且需要做一些工作才能以正确的方式提出问题)

所以我请在这里打印一些var_dump,然后请你帮忙。

为了简化我的学习实验,我正在处理一个只包含5个字段的虚拟表格,如您所见:selecteduser_iduser_name,{ {1}}和user_company。 最后我只插入了两行值。

使用此代码

user_email

我可以看到这个输出

$Arr = (array)$data;
print_r ( $Arr );

接下来我尝试应用你的链接代码

Array ( 
[0] => Array ( [selected] => [user_id] => 3 [user_name] => nome3 [user_company] => azien3 [user_email] => email3 ) 
[1] => Array ( [selected] => 1 [user_id] => 6 [user_name] => nome6 [user_company] => azien6 [user_email] => email6 ) 
)

但是在我的解释或代码中出现了问题,因为输出是

Notice: Array to string conversion in D:\xampp\htdocs\ajax-json\post.php on line 25

Notice: Array to string conversion in D:\xampp\htdocs\ajax-json\post.php on line 25
string(3) "0,1"

string(15) "'Array','Array'"

你能指出什么是错的吗? 例如我的阵列是否正确形成了?

原始问题

我是新手,经过进一步的阅读后,我明白了,希望现在我的问题可以变得更简单了。谢谢你的提示。

我有一个二维数组,因为它的记录来自一个html表。

在html端进行的集合会生成一个关联数组,因此每一行都类似于以下示例,其中,您也可以看到,键很多

24  $fields = implode(",", array_keys($Arr));
25  $newdata = "'" . implode("','", $Arr) . "'";
26  
27  var_dump($fields);
28  echo "<br><br>";
29  var_dump($newdata);

我要插入项目的mysql表名称名为items_table

&#34;单元&#34; &#34;数量&#34;和&#34;描述&#34;所有剩余的键(共47个)与items_table列的名称完全相同

当在php端时,我希望有一种自动查询生成可能与PDO一起从内部数组键名称中选择列名称,并将相应的键值插入正确的列中。 / p>

目标是避免创建这种笨拙且极长的查询。

首选方法是使用PDO,避免绑定47个密钥。

这种自动化也很有用,因为将来可能会添加或删除或重命名mysql表中的列,所以我想忘记只考虑正确编辑html表的查询(在那一侧,数组已经自动生成了一些javascript)

您认为可以这样做吗?

如果是,如何?

这还需要一些foreach循环吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

E.g:

core_table
id* unit quantity description
 1  car         3 Description 1
 2  bike       74 Description 2

adjunct_table
core_id* meta_key* meta_value
      1        47  Description of key n.47 first row
      2        47  Description of key n.47 second row

* = (component of) PRIMARY KEY