Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.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 - Fatal编程技术网

PHP将信息保存到MySQL,但不使用硬编码代码

PHP将信息保存到MySQL,但不使用硬编码代码,php,Php,我当前保存到MySQL数据库的代码: $q1 = $_POST["q1"]; $q2 = $_POST["q2"]; $q3 = $_POST["q3"]; $q4 = $_POST["q4"]; $q5 = $_POST["q5"]; $q6 = $_POST["q6"]; $q7 = $_POST["q7"]; $q8 = $_POST["q8"]; $proc = mysqli_prepare($link, "INSERT INTO tresults_bh_main (resp

我当前保存到MySQL数据库的代码:

$q1 = $_POST["q1"];
$q2 = $_POST["q2"];
$q3 = $_POST["q3"];
$q4 = $_POST["q4"];
$q5 = $_POST["q5"];
$q6 = $_POST["q6"];
$q7 = $_POST["q7"];
$q8 = $_POST["q8"];


    $proc = mysqli_prepare($link, "INSERT INTO tresults_bh_main (respondent_id, ip, browser, q1, q2, q3, q4, q5, q6, q7, q8) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
    mysqli_stmt_bind_param($proc, "issiiiiiiii", $respondent_id, $ip, $browser, $q1, $q2, $q3, $q4, $q5, $q6, $q7, $q8);
目前,这些都是硬编码的,我需要它来使用变量:

我有一个存储以下信息的数组:

$qs['questions']
-存储,例如q1、q2、q3、q4等-显然,这些在数字方面都会发生变化,即q10、q11、q12以及数组中的数量-因此数组中可能存储4个或10个q


我努力想弄清楚的是如何设置这个硬编码页面来处理我的数组和变量,这样我就不必手工编写页面了。

您需要规范化数据库设计

您可以保留第一个表来记录响应,但将响应id存储为唯一的自动递增主键:

tbl\U响应

response_id, respondent_id, ip, browser
response_id, question_id, value
然后添加第二个表来存储提交的数据。在response_id字段的两个表之间形成了一种关系。从response_id和question_id创建一个复合键,以唯一标识每一行

tbl\U问题

response_id, respondent_id, ip, browser
response_id, question_id, value

我不知道这是怎么回答我的问题的?