【发布时间】:2014-03-01 06:06:52
【问题描述】:
我正在尝试将数组(键/值)转换为 SQL 语句。
我正在使用这样的 MYSQLi:
if(!$result = $mysqli->query($sql)){throw new Exception("SQL Failed ".__file__." on line ".__line__.":\n".$sql);}
我有一个这样的数组:
Array
(
[database] => Array
(
[cms_network] => Array
(
[network_id] => 61
[network_name] =>
[network_server_mac_address] => 00:1b:eb:21:38:f4
[network_description] => network
[network_thermostat_reporting_rate] => 5
[network_server_reporting_rate] => 5
[network_data_poll_rate] => 5
[network_created_by] => 38
[network_modified_by] => 1
[network_network_id] => 8012
[network_language] => en
[network_hotel_id] => 68
[network_channel] => 0
[network_deleted] => 0
[network_reported_network_id] => 8012
[network_rooms] => 4
)
)
)
如何将 [cms_network] 转换为如下所示:
$sql = "UPDATE cms_network set network_id='61', network_name='',
network_server_mac_address = '00:1b:eb:21:38:f4', .... WHERE network_id='61'"
我更感兴趣的是如何在我的 select 语句中将数组的 key=>value 对连接为 key='value'。
感谢您的帮助!
【问题讨论】:
-
假设您将内联数组设置为变量
$cms_network,您可以使用foreach ($cms_network as $key=>$value) {}并构建您的查询字符串。 -
我想使用 implode() 但我不知道如何将值与键混合。内爆数组时,我只得到以下值:61,,00:1b:eb:21:38:f4,network,5,5,5,38,1,8012,en,68,0,0,8012, 4.我还需要将密钥内爆并以某种方式将它们映射在一起。
-
implode()不做关联数组。你可以使用array_walk(),但这有点矫枉过正。
标签: php mysql sql arrays mysqli