0

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

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

通过使用 DESCRIBE 语句,我们将检索调查表中的字段,而不考虑数据库。

我需要知道我们可以一次又一次地循环直到调查表中的所有字段出现的方式。

在下面的代码中,我将 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);
    //}
}
4

2 回答 2

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
于 2012-11-16T03:50:19.390 回答
0

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

于 2012-11-16T04:02:02.967 回答