Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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 动态潜在客户捕获脚本_Php_Mysql_Forms - Fatal编程技术网

Php 动态潜在客户捕获脚本

Php 动态潜在客户捕获脚本,php,mysql,forms,Php,Mysql,Forms,我正在创建一个动态潜在客户捕获脚本 表单传递表名和其他post数据 我正在寻找一种方法来收集所有post输入,并将其插入MySQL表,而不知道输入名称,因为每个“lead”脚本都不同,并且包含不同的字段 该表已创建,并包含输入所需的所有列 有什么好主意吗? 干杯 一个快速解决方案是序列化已验证post数据的数组。这将把它转换成一个字符串以存储在数据库中 您可以取消序列化该字符串以将其转换回可管理数组 最大的缺点是,通过将数据放在单独的数据库字段中,没有完全的SQL支持 我将使用这两种技术的组合

我正在创建一个动态潜在客户捕获脚本

表单传递表名和其他post数据

我正在寻找一种方法来收集所有post输入,并将其插入MySQL表,而不知道输入名称,因为每个“lead”脚本都不同,并且包含不同的字段

该表已创建,并包含输入所需的所有列

有什么好主意吗?
干杯

一个快速解决方案是序列化已验证post数据的数组。这将把它转换成一个字符串以存储在数据库中

您可以取消序列化该字符串以将其转换回可管理数组

最大的缺点是,通过将数据放在单独的数据库字段中,没有完全的SQL支持

我将使用这两种技术的组合,将姓名、电子邮件等一致的数据放在自己的字段中,将未知数据放在另一个字段中

--

尝试索引标识(如果您不知道具体名称):

--

从数据生成SQL字符串。请记住,要警惕验证,最好使用Mysqli绑定参数正确构建查询字符串

foreach($_POST as $input_name => $input_value){
    //do validation here

    //match columns here
    if($input_name=='name') $cleaned[$input_name] = $input_value;
}

$values_csv = '"'.implode('","',$cleaned).'"';

$sql  = "INSERT INTO table_name VALUES ($values_csv);";

我同意,缺点是我的问题,因为表已经用分离的字段构建,因此我需要找到一种方法将数据插入字段(基本上输入名称与mysql字段名称相同)。如果不知道输入名称,就无法知道数据来自哪些字段。您可以测试每个输入的数据,看看它可能是什么,或者通过它的索引来识别输入的数据,即$\u POST数组中的位置。索引是一致的吗?我现在要做的是:我用array\u键($\u POST)收集所有输入;然后我必须找到一种在sql查询中设置这些值的方法:在表_name(column1,column2,column3,…)中插入值(value1,value2,value3,…)-现在我不知道如何在不循环的情况下设置列和值数据。循环是构建自己的字符串查询字符串的唯一选择。使用数组\值/数组\键的组合来获取所需内容。但是请注意,您应该验证所有数据——包括键和值。如果您有一个与列名称不匹配的键,您的查询将出现错误。不确定如何循环,毕竟我需要使用所有列及其数据(相同顺序)执行1个MySQL查询。
foreach($_POST as $input_name => $input_value){
    //do validation here

    //match columns here
    if($input_name=='name') $cleaned[$input_name] = $input_value;
}

$values_csv = '"'.implode('","',$cleaned).'"';

$sql  = "INSERT INTO table_name VALUES ($values_csv);";