将多个 IP 地址插入数据库



我在将多个使用cURL抓取的IP地址(代理(插入127.0.0.1:8080格式的数据库时遇到问题。

我可以使用print_r($proxys(在PHP中显示数据,但在保存到数据库时,我只能保存IP地址的前3个值,而不能保存其他值。

我想做的就是在我的数据库中以127.0.0.1:8080等格式保存代理,但我只得到插入的IP地址的第一个值,(1,12127(等,而不是(127.0.0.1:8060(

在我使用过的数据库中创建表/列时。

  • 表名:socks5
  • 列名:代理
  • 类型:int(20(
  • 属性:UNSIGNED

这是我的代码。

scraper.php

<?php
require_once __DIR__ . '/lib/dblibary.class.php';
$app = new DBLib;

$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozillia/5.0');
$proxies = array();
$start_count = 1;
$end_count = 10;
for($i = $start_count; $i <= $end_count; $i++) {
curl_setopt($curl, CURLOPT_URL, "https://www.my-proxy.com/free-proxy-list-$i.html");
$result = curl_exec($curl);

preg_match_all("!d{1,3}.d{1,3}.d{1,3}.d{1,3}:d{2,4}!",$result,$matches);
foreach($matches[0] as $match) { 

$proxies = $app->GrabProxy($match);
}

}
curl_close($curl);  
//Display the proxies within HTML(This works and displays IP & Port)
//echo '<pre>'; print_r($proxies); echo '</pre>';

/lib/dblibary.class.php

public function GrabProxy($match) {
try {
$db = DB();
$query = $db->prepare("INSERT INTO socks5 (proxies) VALUES (:proxies)");
$query->bindParam("proxies", $match, PDO::PARAM_INT);
$query->execute();
if ($query->rowCount() > 0) {
return true;
}

}
catch(PDOException $e) {
exit($e->getMessage());
}
}   

我真的很感激在这方面的任何帮助。谢谢

您是否尝试将列类型更改为varchar(200(而不是int?!

最新更新