【发布时间】:2012-01-22 22:45:25
【问题描述】:
我正在创建一个动态的潜在客户捕获脚本。
表单传递表名,以及其余的发布数据。
我正在寻找一种在不知道输入名称的情况下收集所有帖子输入并将其插入 MySQL 表的方法,因为每个“引导”脚本都不同并且包含不同的字段。
该表已经创建并包含输入所需的所有列。
有什么好主意吗? 干杯!
【问题讨论】:
我正在创建一个动态的潜在客户捕获脚本。
表单传递表名,以及其余的发布数据。
我正在寻找一种在不知道输入名称的情况下收集所有帖子输入并将其插入 MySQL 表的方法,因为每个“引导”脚本都不同并且包含不同的字段。
该表已经创建并包含输入所需的所有列。
有什么好主意吗? 干杯!
【问题讨论】:
一个快速的解决方案是序列化一组经过验证的帖子数据。这会将其转换为字符串以存储在您的数据库中。
您可以反序列化该字符串以将其转换回可管理的数组。
http://php.net/manual/en/function.serialize.php
最大的缺点是没有完整的 SQL 支持,否则将数据放入单独的数据库字段。
我会结合使用这两种技术,将姓名、电子邮件等一致的数据放入各自的字段,将未知数据放入另一个字段。
--
尝试索引识别(如果您不知道具体名称):
$data = array_values($_POST);
$name = $data[0];
$email = $data[1];
$etc = $data[2];
--
从数据生成 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);";
【讨论】: