mysql替换表中的列

时间:2009-06-12 20:19:35

标签: php mysql

我正在从包含18列的文件中插入数据,我想将其插入的表有20列。其中2列已包含数据。如何在不覆盖现有数据的情况下将文件插入表中。

下面是

代码示例。 note $line .= ',,'附加两列,因为除非列与20列的确切表大小匹配,否则更新不会起作用。但$line .= ',,'会覆盖已插入的数据。我该怎么办?

$fcontents = file('data.txt'); 

if(mysql_error())
    echo mysql_error();

for($i=0; $i<sizeof($fcontents); $i++) 
{   
    //strip out double quotes
    $line = ereg_replace('"','',trim($fcontents[$i])); 

    $line .= ',,';

    //strip replace semi-colon with blank spaces
    $line = ereg_replace(';',' ',$line); 

    //single quote in parts records breaks replace code, removing single quote...
    $line = ereg_replace("'",'',$line); 


    //breaks apart the tab delimited row into a array
    $arr = explode(",", $line); 

    //add comma deliminted data back
    mysql_query("REPLACE INTO products VALUES ('". implode("','", $arr) ."')");


}

1 个答案:

答案 0 :(得分:4)

指定列名称:

REPLACE INTO products (col1, col2, ...) VALUES (val1, val2, ...)

请参阅MySQL online manual