Php mysql创建动态表

Php mysql创建动态表,php,mysql,Php,Mysql,我正在尝试动态创建一个表,我面临的唯一问题是动态创建列。我的意思是,我不会有固定数量的列,所以我尝试将其表示为变量,但当我运行代码时,它会给我一个错误。下面是我试过的 错误 You have an error in your SQL syntax; check the manual that corresponds to your... $colArray = array(); foreach($ml as $df){ $colArray[] = "`".$df."` VARCHAR(25

我正在尝试动态创建一个表,我面临的唯一问题是动态创建列。我的意思是,我不会有固定数量的列,所以我尝试将其表示为变量,但当我运行代码时,它会给我一个错误。下面是我试过的

错误

You have an error in your SQL syntax; check the manual that corresponds to your...


$colArray = array();
foreach($ml as $df){
$colArray[] =  "`".$df."` VARCHAR(250) NOT NULL,<br/>";
}

$columns = implode("",$colArray);

$sql = "CREATE TABLE IF NOT EXISTS {$table_name}(
id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(250) NOT NULL,
{$columns}
date VARCHAR(250) NOT NULL,
PRIMARY KEY (id)
            )";
 $stmt = $db->prepare($sql);
 echo $db->error;
 $stmt->execute();
您的SQL语法有错误;检查与您的。。。
$colArray=array();
foreach($ml作为$df){
$colArray[]=“`.$df.`VARCHAR(250)不为空,
”; } $columns=内爆(“,$colArray”); $sql=“创建不存在的表{$TABLE\u name}”( id INT非空自动增量, 用户名VARCHAR(250)不为空, {$columns} 日期VARCHAR(250)不为空, 主键(id) )"; $stmt=$db->prepare($sql); echo$db->错误; $stmt->execute();
这基本上是应该起作用的:

$colArray = array();
// Since you want these two columns in order
// assign here
$colArray[] =  "id INT NOT NULL AUTO_INCREMENT";
$colArray[] =  "username VARCHAR(250) NOT NULL";

foreach($ml as $df) {
    $colArray[] =  "`".$df."` VARCHAR(250) NOT NULL";
}

// Since you want column last, assign here
$colArray[] =  "date VARCHAR(250) NOT NULL";

$columns = implode(",\r\n",$colArray);

$sql = "CREATE TABLE IF NOT EXISTS {$table_name}(
{$columns},
PRIMARY KEY (id))";
 $stmt = $db->prepare($sql);
 echo $db->error;
 $stmt->execute();

删除sql中的

。这会给你一个错误。如果需要换行符,请使用“\r\n”大多数需要这样的动态表的设计都是错误的。动态信息应该在数据中,而不是模式中。@michael如果在网页中重复它,他将看不到无关的HTML。事实上,它看起来是正确的,因为它会导致换行。此外,您应该在编译列时不使用逗号。当你内爆时,你使用
内爆(“,”,$colArray)
@Barmar-你说得对,我需要睡觉了