php - 如何在mysql中创建一个表,其中表中的字段数等于php中excel文件中的列数?

标签 php mysql phpexcel

我想在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/

相关文章:

PHP - 如果 URL 中有此内容,则不显示 div

php - mySQL 删除时出现意外标记

PHPExcel 功能问题

PHPExcel 检查工作表是否存在

php - 为什么这种比较不起作用?

php - 生成所有可能的单词组合

php - android 你没有权限访问/在此服务器上 WAMP

mysql - 如何连接 Car_type、Model 和 Mark Car Laravel mysql

mysql - WSO2 API 管理器无法使用 MySql 创建新的 api

带有消息 "Could not close zip file php://output."的 PHPExcel_Writer_Exception