硬编码为动态值

时间:2012-11-16 03:43:08

标签: php mysql

我被赋予了将硬编码字段转换为动态字段的任务。我已将其部分更改为动态字 让我向你解释一下情况,

我们有很多数据库,每个数据库都有一个名为Surveys的表格

通过使用DESCRIBE语句,无论数据库如何,我们都将检索Surveys表中的字段。

我需要知道我们可以反复循环的方式,直到调查表中的所有字段出现。

在下面的代码中,我将for循环留空了。

请让我知道为使这项工作需要做的改变

我真的很感激任何帮助

function insertIntoUserUploadFileds() {

    $describe="DESCRIBE surveys";

    $sql = "INSERT INTO `userUploadFields` (`fieldName`, `inUse`, `mandatory`, `type`, `mapTo`) VALUES";

    $inUse="0";
    $type="";

    //for(){
        if($field=='type'){
            $type="N";
        }elseif(($field=='fname') || ($field=='lname') || ($field=='phone')){
            $inUse="1";
            $type="T";
        }elseif($field=='email'){
            $inUse="1";
            $type="E";
        }

        //$sql .= "('".$field."', '".$inUse."', '0', '
        $result1 = mysql_query ($describe);
        $result = mysql_query ($sql);
    //}
}

2 个答案:

答案 0 :(得分:0)

    $result1 = mysql_query ('DESCRIBE surveys');

        //here is how you retieve all field and check
        while($row = mysql_fetch_array($result1)) {

         $sql = "INSERT INTO `userUploadFields` (`fieldName`, `inUse`, `mandatory`, `type`, `mapTo`) VALUES";

           //here you can do if else to check the column name
           if($row['field']=='type')
            {
                $type="N";
            }
            else if(($row['field']=='fname') || ($row['field']=='lname') || ($row['type']=='phone'))
            {
                $inUse="1";
                $type="T";
             }

             else ($row['field']=='email')
            {
                 $inUse="1"
                 $type="E";
            }


           //build your query

           $sql .= "('".$field."', '".$inUse."', '0', '......)

           //execute your complete query
           $result = mysql_query ($sql);
        }//end of while

答案 1 :(得分:0)

如果您尝试检索特定列的默认DESCRIBE,而不是使用type,则可以查看此内容。它描述了如何分解特定表中的信息。 Codex