PHP While 循环增加变量

标签 php mysql variables

我有这个 php 代码。一切都很顺利,直到 $insert 为止。我想要得到的是循环期间的不同变量。

例如,它应该得到的第一个循环

$A1

下一个循环是获取$A2,依此类推。我这样做是因为当我完成所有这些之后,变量将超过一百个。

我认为可行的是制作类似的东西

$b='$A';

但显然它不起作用。

<?php
include 'connect.php';

$A1=$_POST['a1'];
$A2=$_POST['a2'];
$A3=$_POST['a3'];
$examinee=$_POST['examinee'];
$Q1=$_POST['q1'];
echo $A1 . '<BR>'
    . $A2 . '<BR>'
    . $A3 . '<BR>'
    . $examinee . '<BR>'
    . $Q1;

$query = "SHOW TABLES LIKE '$examinee'";
$result = $conn->query($query);

if(mysqli_num_rows($result)==1) {
    echo "Table exists";
}
else {
    $create="CREATE TABLE $examinee (ano int NOT NULL AUTO_INCREMENT, answer varchar(255), PRIMARY KEY (ano))";
    $conn->query($create);


    $a=1;
    $b='$A';

    while ($a<4) {
        $insert="INSERT INTO $examinee (ano, answer) VALUES ('', '$b.$a')";
        $conn->query($insert);
        $a++;
    }
}
?>

我想要发生的是使用 while 循环将变量 $A1、$A2、$A3 的值插入数据库中。

最佳答案

再次,我同意 Ed Cottrell 的观点,即您对 SQL 注入(inject)持开放态度,但考虑到当前的实现,我认为您可以使用数组更快地完成您想要的操作。请参阅下面的代码部分。

<?php
$post_array = array(
    $_POST['a1'],
    $_POST['a2'],
    $_POST['a3']
);

// printout statements and database connection here as above

for ($i = 0; $i < count($post_array); $i++) {
    $insert = "INSERT INTO $examinee (ano, answer) VALUES ('', " . $post_array[$i] . ")";
    $conn->query($insert);
}

更好的实现将使用 prepared statements .

关于PHP While 循环增加变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33137646/

相关文章:

javascript - 未定义索引 : PHP variables passing by AJAX

c - 在c中打印更新变量

php - preg_replace删除Youtube和Vimeo对象并嵌入链接

mysql - Mysql召唤订单总数

php - 如何删除html特殊字符?

html - 在mysql中获取总数和组数

php - if 检查双重记录的条件指令

variables - 为什么我必须为 "const"变量指定类型而不是 "let"变量?

php - 我得到的 API 响应是什么类型的结果?

javascript - Codeigniter 上的 AutoSuggest (Ajax) - 404 错误