php - 使用 mysqli 将表单 $_POST 数组插入 MySQL 数据库

标签 php mysql

我有一个 $_POST 数组,我正在尝试编写插入 MySQL 数据库的代码,而不必列出所有字段名称。

数组是需要插入数据库的单行。

数组看起来像这样:

Array
(
    [membership_type] => 4
    [title] => Mr
    [first_name] => John
    [last_name] => Smith
    [known_as] => John
    [address_1] => 10 High Street
    [address_2] => Big House
    [address_3] => Big Road
    [address_4] => Chipping Sodbury
    [address_5] => Bristol
    [post_code] => BS37 1AB
    [home_tel] => 01454 123456
    [mobile] => 07777 123456
    [email] => john@email.com
    [confirm_email] => john@email.com
    [day_dob] => 21
    [month_dob] => 09
    [year_dob] => 1974
    [volunteer] => on
    [employment_status] => employed
    [college_nus] => 
    [employment_address] => 50 Station Road
Chipping Sodbury
Bristol
BS37 2CD
    [occupation] => Managerial/Professional
    [employement_email] => john@work.com
    [employement_phone] => 01454 654321
    [terms] => 1
)

为方便起见,我已将表单字段名称编码为与数据库中的字段名称相对应。

非常感谢,

约翰

最佳答案

你可以使用这个方法:

注意:我使用 PDO

首先像这样连接到数据库:

$connection = new PDO('mysql:host=' . yourHost . ';dbname=' . youDbName . ';charset=utf8', DBUser, Dbpass);

$data=$_POST;
  $bind = ':' . implode(',:', array_keys($data));
        $field = explode(",", $bind);
        $returnQuery = "INSERT INTO `tableName` (" . implode(",", array_keys($data)) . ") VALUES (" . $bind . ") ";
        $bind = $connection ->prepare($returnQuery);
        $bind->execute(array_combine($field, array_values($data)));

希望对你有帮助

关于php - 使用 mysqli 将表单 $_POST 数组插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36964129/

相关文章:

php - 在表单提交时在 session 数组中存储多行

php - 连接到同一 pod 中的 MySQL 容器

javascript - 通过正文隐藏 <li Class>(无 header 访问或 CSS)

php - mysql_query 总是返回 false 与 SELECT EXISTS

mysql - 如何查找下一行或上一行或下一行

php - WordPress MySQL 查询失败

php - 在 mySQL 中插入带有特殊字符的 JSON 编码值失败

php - 有没有办法在 xampp 数据库中的整数之前添加前缀 00

MySQL存储过程回滚的原因

mysql - 左连接不适用于条件