PHP保存到数据库时的变量变量

时间:2014-05-15 04:49:38

标签: php variables for-loop

我有一个使用Ajax调用的save.php页面,它包含以下元素:

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

$proc = mysqli_prepare($link, "INSERT INTO tresults 
(respondent_id, ip, browser, company, q1, q2, q3, q4, q5) 
VALUES (?, ?, ?, ?, ?, ?, ?, ?);");

mysqli_stmt_bind_param($proc, "issiiiii", 
$respondent_id, $ip, $browser, $company, 
$q1, $q2, $q3, $q4, $q5);

目前,save.php页面是手动编码的,但我确信必须有一种方法可以使用variable variables自动化此页面,特别是当字段数超过100时我正在保存到数据库。

然而,我无法使用variable variables来解决问题,并且可以使用一些指导。

我没有用,但尝试了以下内容:

for ($i = 1; $i <= 5; $i++) {
    echo '$q.$i = $_POST["q".$i];';
}

以及

for ($i = 1; $i <= 5; $i++) {
   $q.$i = $_POST["q".$i];
}

欢迎任何和所有建议。

感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用:

${'q'.$i} = $_POST['q'.$i];

此外:

for ($i = 1; $i <= 5; $i++) {
    echo '$q.$i = $_POST["q".$i];';
}

应该是:

for ($i = 1; $i <= 5; $i++) {
    echo "$q.$i = $_POST['q'.$i];";
    //   ^                       ^
}

否则变量不会在字符串内插入。

答案 1 :(得分:0)

将它们包裹在{}

for ($i = 1; $i <= 5; $i++) {
${'q'.$i}=$_POST['q'.$i];
}

请完成此操作一次以供参考http://www.php.net/manual/en/language.variables.variable.php