我是php领域的新人,我想得到帮助,我在谷歌上搜索了很多,但没能找到。我想把表url中的站点的ips写入一个名为ips的行中的数据库。
我使用gethostbyname
来获取IP,现在我想做的是获取存储在url行中的该站点的IP,并将该IP存储在表的ips行中,但我无法做到:只有第一行的url IP写入所有的ips列中。请告诉我如何在相应行的ips列中写入每个URL的IP。
<?
include"cfg/db.php";
$mirror_al =
mysql_query("SELECT * FROM kayitlar");
$mirror = mysql_fetch_array($mirror_al);
$siteip=$mirror['url'];
$shrt=substr($siteip, 7);
$url = rtrim($shrt,"/");
$mystring = $url;
$parts = explode("/",$mystring);
$mystring = $parts['0'];
$fullip=gethostbyname($mystring);
echo $fullip;
$ekle2 = mysql_query("UPDATE kayitlar set ips='$fullip'"); ?>
您的问题就在这里(或者至少是您正在抱怨的问题):
mysql_query("UPDATE kayitlar set ips='$fullip'");
如果您只是在表上调用update
,它将更新所有记录。您需要某种类型的where
子句,通常这是当前表中的某个ID。根据您的表结构,您也可以使用limit 1
(我不知道您是如何设置的,所以我不能给您这个答案)。如果您没有办法选择特定的行,您也可以考虑简单地使用INSERT
。
以下是您可能正在寻找的内容:
if($fullip)
mysql_query("UPDATE kayitlar set ips='$fullip' where id='".
// sanitize your data!
mysql_real_escape_string($id) ."'");
如果你在任何地方都不使用id
,我不知道为什么你会得到它。。。我已经从数据库中添加了siteid
,请查看它是否有效:
include"cfg/db.php";
$id = $_GET['id'];
$mirror_al = mysql_query("SELECT * FROM kayitlar");
while($mirror = mysql_fetch_array($mirror_al))
{
$siteip =$mirror['url'];
$siteid = $mirror['id']; // please correct accordingly
$shrt=substr($siteip, 7);
$url = rtrim($shrt,"/");
$mystring = $url;
$parts = explode("/",$mystring);
$mystring = $parts['0'];
$fullip=gethostbyname($mystring);
echo $fullip;
$ekle2 = mysql_query("UPDATE kayitlar set ips='$fullip' where id='".$siteid."'");
}