Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数组中动态加载mysql表字段_Php_Mysql_Arrays_Cakephp - Fatal编程技术网

Php 从数组中动态加载mysql表字段

Php 从数组中动态加载mysql表字段,php,mysql,arrays,cakephp,Php,Mysql,Arrays,Cakephp,我有一个CSV文件,从中提取标题,这些标题是使用PHP的explode()函数在MySQL表中的实际字段。我不知道每个CSV文件中有多少字段,但我需要在这些字段中动态插入数据 例如: array( (int) 0 => 'admission_no', (int) 1 => 'first_name', (int) 2 => 'middle_name', (int) 3 => 'last_name', (int) 4 => 'ge

我有一个CSV文件,从中提取标题,这些标题是使用PHP的
explode()
函数在MySQL表中的实际字段。我不知道每个CSV文件中有多少字段,但我需要在这些字段中动态插入数据

例如:

array(
    (int) 0 => 'admission_no',
    (int) 1 => 'first_name',
    (int) 2 => 'middle_name',
    (int) 3 => 'last_name',
    (int) 4 => 'gender',
    (int) 5 => 'date_of_birth',
    (int) 6 => 'join_date',
    (int) 7 => 'form_id',
    (int) 8 => 'stream_id'
)

insert语句类似于
insert INTO tbl_name(…)VALUES(…)
。我希望从上面的数组中动态加载列名,因为我不确定它们的数量。有人能给我指出正确的方向吗?

这可能符合你的要求。试试这个

      $query = "INSERT INTO `mytable` ( ".
      mysql_real_escape_string(implode(array_keys(' , ', $explodedColumnName))).
      ") VALUES ( '".
      mysql_real_escape_string(implode("' , '", $userData)).
      "' )";

嗯。。。您是否也在动态创建表?如果不知道哪些列,如何知道它们将在表中存在或不存在?如果您确实知道表中的所有列,只需列出它们,并将文件中未定义的值保留为Null/空。我知道表中存在哪些列,csv文件头将只包含现有列。问题是我希望该函数在应用程序范围内,用于插入到不同的表。我不想硬编码sql语句中的列由于每个表的列不同,所以需要将数组内爆为逗号分隔的字符串,并动态插入select语句中?是的,像这样的,让我试试内爆方法,看看会发生什么。感谢他使用cake的洞察力,他不需要实际的mysql\U查询