0

我尝试了几种不同的方法来使这项工作无济于事。

基本上,我有这 4 行有很多功能:

function getID($URL){
  //These 3 plus this comment line
    $parentQ = "select * from cdi_content where URL=\"$URL\"";
    $parentResult = mysql_query($parentQ); // Run the Query
    $link = mysql_fetch_assoc($parentResult); // Query Result
...continues...

这基本上告诉数据库检查 $URL,如果它与数据库中的 URL 字符串匹配,它会抓取与该 URL 关联的所有数据,然后我会抓取我需要的东西

$link['ID'];

这会给我与 $URL URL 关联的 ID。

该函数检查打印“覆盖”变量 ($ID)、默认变量 ($defaultID) 或从服务器中提取 ($link['ID']) 的条件列表,如下所示。“覆盖”是当前由全局 $ID 调用的函数之外的变量。

$ID = ''; //Overrides if set
function parseData($URL){
  //Initialize Query for Table Data
    $parentQ = "select * from cdi_content where URL=\"$URL\"";
    $parentResult = mysql_query($parentQ); // Run the Query
      return mysql_fetch_assoc($parentResult); // Query Result  
};
function getID($URL){
  global $ID;
  $serverID = parseData($URL);
    if(empty($ID)){
      if(empty($serverID)){
        echo $defaultID; 
      } else { echo $serverID['ID']; }
    }//end of ifs
    else 
      { echo $ID; } 
};
4

2 回答 2

1

如果我对您的理解正确,那么您只是在尝试重构该功能,因此您不必继续重写它。那是对的吗?

如果是这样,您可以像这样提取一个新函数:

function getLink($URL){
    $parentQ = "select * from cdi_content where URL=\"$URL\"";
    $parentResult = mysql_query($parentQ); // Run the Query
    return mysql_fetch_assoc($parentResult);
}

然后这样称呼它:

function getID($URL){
    $link = getLink($URL);
}
于 2013-03-01T21:41:24.270 回答
1

因此,您要解析需要搜索条件的数据行$criterion和您希望它返回的字段:

function getField($criterion, $returnField){
    $parentQ = "select * from cdi_content where URL='".$criterion."' LIMIT 1"; // also make sure you  that $criterion is safe to use in a query
    $parentResult = mysql_query($parentQ); // Run the Query
    if ($parentResult)
    {
        $row = mysql_fetch_assoc($parentResult);
        return $row[$returnField];
    }
    else
    {
        return FALSE;
    }
}

现在你可以调用它:

$linkId = getField($url, 'ID');

于 2013-03-01T22:26:20.170 回答