我真的被这个部分困住了......我已经尝试过但我的思绪正在爆炸,因为我无法弄明白。
我在网上找到了这段代码,我想分别在MySQL上存储每个数组。 我需要代码如何拆分这个数组并将每个值存储在MySQL中。
这是它现在的输出:
Array ( [domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => NL - Netherlands [state] => Saarland [town] => Schiffweiler )
但是我想将NL - 荷兰存储在例如MySQL表国家。
有人可以帮帮我吗?
以下是我找到的代码:
<?php
$ip='94.219.40.96';
print_r(geoCheckIP($ip));
//Array ( [domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen )
//Get an array with geoip-infodata
function geoCheckIP($ip)
{
//check, if the provided ip is valid
if(!filter_var($ip, FILTER_VALIDATE_IP))
{
throw new InvalidArgumentException("IP is not valid");
}
//contact ip-server
$response=@file_get_contents('http://www.netip.de/search?query='.$ip);
if (empty($response))
{
throw new InvalidArgumentException("Error contacting Geo-IP-Server");
}
//Array containing all regex-patterns necessary to extract ip-geoinfo from page
$patterns=array();
$patterns["domain"] = '#Domain: (.*?) #i';
$patterns["country"] = '#Country: (.*?) #i';
$patterns["state"] = '#State/Region: (.*?)<br#i';
$patterns["town"] = '#City: (.*?)<br#i';
//Array where results will be stored
$ipInfo=array();
//check response from ipserver for above patterns
foreach ($patterns as $key => $pattern)
{
//store the result in array
$ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found';
}
return $ipInfo;
}
?>
答案 0 :(得分:1)
你可以将数组的每个部分单独保存到一个mysql数据库中,这应该不是问题。
你可以看看这个网站如何从php中访问mysql: http://www.tizag.com/mysqlTutorial/mysqlinsert.php
和sql insert查询应该有帮助:
mysql_query("INSERT INTO country (country) VALUES(".$ipInfo['country'].") ")
答案 1 :(得分:0)
对我而言,问题陈述有点模糊。 如果它只是示例中引用的单个unnested数组,那么当您添加缺少的撇号时,Petros建议应该工作,以便您将拥有以下语句:
mysql_query("INSERT INTO country (country) VALUES('".$ipInfo['country']."') ")
请注意在开盘前和收盘前加入的单一报价。 我在PHP代码块中编写SQL语句时的偏好是使用如下所示的heredoc格式,以便我可以看到SQL语句应该是什么(并观察它是否缺少某些东西或有拼写错误):
$sql =<<<raw
INSERT INTO country (country)
VALUES ('%s');
raw;
mysql_query(sprintf($sql, $ipInfo['country']));
它更长,但它有助于使代码更清晰。
如果您的数据是数组数组,那么您首先要创建一个国家/地区数组,然后使用implode命令连接所有值。