gpt4 book ai didi

php - 将数组值插入 SQL 中

转载 作者:行者123 更新时间:2023-11-29 14:47:39 25 4
gpt4 key购买 nike

我使用以下代码随机化了一组问题:

for($i=0; $i < count($nwi); $i++) 
$itemorder[$i] = $i;
shuffle($itemorder);

$_SESSION["itemorder"] = $itemorder;

几页后,提出了部分问题:

for ($i=0; $i<40; $i++) {
if ($i % 10 ==0) echo $header;
echo '<tr class="';

if(in_array($itemlabel[$_SESSION["itemorder"][$i]], $errors)) echo 'skip';
elseif ($i % 2 == 0) echo 'even';
else echo 'odd';

echo '">';
echo '<td>' . ($i + 1) . ".</td><td>" . $itemtext[$_SESSION["itemorder"][$i]] . '</td>';
for ($j = 1; $j <= 6; $j++) {
echo "\n" . '<td';
if ($j == 6) echo ' style="background-color:#999;"';
echo '><input type="radio" name="';
echo $itemlabel[$_SESSION["itemorder"][$i]];
echo '" value="';
echo $j; //value of the input
echo '"';
if ($_POST[$itemlabel[$_SESSION["itemorder"][$i]]] == $j) echo " checked";
echo '></td>';
}

在调查结束时,我尝试将问题的答案(值范围应为 1-8)放入我的 SQL 数据库中:

"INSERT INTO surveydata 
(id, agree_pppg_01,agree_pppg_02,agree_pppg_03,....
VALUES
('$_SESSION[id]', '$_SESSION[itemorder][0]',
'$_SESSION[itemorder][1]', '$_SESSION[itemorder][2]',
'$_SESSION[itemorder][3]',...

无论我如何回答问题,我的 SQL 数据库中都只得到零。有什么建议么?

最佳答案

好吧,首先我没有看到任何为 session 值分配任何内容,但您的代码的问题在于以下模式:'$_SESSION[itemorder][1]'。首先,我要确保 MySQL 期望的是 varchar 而不是 int。如果它是一个 int,好的形式是确保它不被引用。

但更重要的是,当您在 PHP 中使用关联数组时,您需要确保 PHP 愿意这样做。

这个

$a = array("hi"=>array("world"=>0)); echo "$a[hi][world]";

输出

Array[world]

在查找周围加上大括号,以确保它知道将其视为数组,然后在所有字符串索引周围加上引号:

// note the braces and quotes
$a = array("hi"=>array("world"=>"here")); echo "{$a["hi"]["world"]}";

输出

"here"

但是,我想知道使用 implode 是否会更好:

$columns = implode(',', $_SESSION['itemorder']);
$query = "INSERT INTO surveydata
(id, agree_pppg_01,agree_pppg_02,agree_pppg_03,....
VALUES ('{$_SESSION["id"]}', $columns )";

我确实觉得有必要指出,该系统似乎不可扩展,并且像 agree_pppg_02 这样的列名称没有描述性。您可能需要访问 codereview stackexchange 站点,看看他们是否无法提供有关数据库设计的提示。

关于php - 将数组值插入 SQL 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6557818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com