我想在mysql中创建一个表,其中表中的字段数等于excel文件中的列数。
$sSql = "";
for ($col = 1; $col <= $nrColumns; ++ $col) {
if ($col < $nrColumns){
$sSql = $sSql . " Kol[$col] VARCHAR(25), ";
} else {
$sSql = $sSql . " Kol[$col] VARCHAR(25)";
}
}
echo "SQL = $sSql <br>";
$sqlCreate="CREATE TABLE temp_table ( $sSql )";
$result = mysql_query($sqlCreate, $connect);
if (!$result){
die('Could not create table: ' . mysql_error());
}
我尝试了该代码,但不起作用。 谢谢。
最佳答案
问题是您选择的列名称语法:方括号在列名称中无效。因此 Kol[$col]
无效,您可以执行类似 Kol_$col
的操作。
出于编码风格的原因,我建议使用 sprintf()
来实现:
$sSql .= sprintf( ' kol_%s VARCHAR(25)', (int)$col );
另请注意列名称中的小写“k”。事实证明,它可以防止在标识符名称中使用大写字符时出现的恼人错误。
您可以使用 phps implode()
函数来简化代码,顺便说一句:
$sCol = array();
for ($col = 1; $col <= $nrColumns; ++ $col)
$sCol[] = sprintf( 'kol_%s VARCHAR(25)', (int)$col )
$sqlCreate = sprintf( 'CREATE TABLE temp_table (%s)', implode( ", ", $sCol ));
关于php - 如何在mysql中创建一个表,其中表中的字段数等于php中excel文件中的列数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23181241/