显示INFORMATION_SCHEMA.COLUMNS结果为字符串

时间:2014-04-07 04:15:46

标签: php mysql

首先,如果我犯了一些错误,英语不是我的第一语言。我是PHP和MySQL的新手,我正在做一个小小的个人项目。我被困在一些我真的不知道该怎么做的事情上,我想就最好的方法提出自己的意见。

我想生成一个包含此信息的文件(使用fwrite):

class applications
{
    private $_"value1";
    private $_"value2";
    private $_"value3";
    etc depending on how many columns the table have
}

“value”等于表的每列的名称。

要获取列名称,我在此请求中使用INFORMATION_SCHEMA.COLUMNS:

$columns = $db->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$_POST[dropdown]' AND table_schema = 'tp2'");
$columns->execute();
$resultCol = $columns->fetchAll(); 

要编写我正在使用此代码的文件:

$ouv = fopen($dir."/".$nomfile.".class.".$ext, 'w+');
fwrite($ouv, $text);

变量$ text必须包含foreach循环的结果,如下所示:

foreach($resultCol as $value3)
{
    print_r("private "."$"."_".$value3[0].";"."<br/>") ;
}

如果我想在php页面中显示它,这个print_r会起作用,但我需要将它保存为文件中的字符串。 由于$ text是一个变量,我不能在其中使用foreach而且我真的不知道该怎么做。

所以在您看来,做我想做的最好/最简单的方法是什么?

1 个答案:

答案 0 :(得分:0)

步骤

  1. 打开文件
  2. 循环结果集
  3. 读取行列值
  4. 构建文本
  5. 写入文件
  6. 关闭文件
  7. 示例

    $ouv = fopen( $dir . "/" . $nomfile . ".class." . $ext, 'w+' );
    
    foreach( $resultCol as $value3 )
    {
        $text = "private $_" . $value3[0] . ";" ;
    
        fwrite( $ouv, $text );
    }
    
    fclose( $ouv );