gpt4 book ai didi

php - 将表单输入存储到数组并查询数组时出现问题

转载 作者:行者123 更新时间:2023-11-29 02:35:39 24 4
gpt4 key购买 nike

基本上我有一个动态表单,它根据用户的选择方式提供可变数量的输入,我已经使用此 name="user[]" 设置所有文本输入以存储值成一个数组。

然后我在提交表单后放入这个数组:

$array = check_input($_POST['user']);

然后我在这样的查询中使用这个数组:

$query = 'SELECT * FROM users_tb WHERE student_number IN(' . implode(',', $array) .')';
mysql_query($query) or die(mysql_error());
$result=mysql_query($query);

我得到这个错误:

您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的 ')' 附近使用的正确语法

现在我还想检查数组中的值,但是当我尝试 print_r($array); 查看值是否存在时,它只会打印单词“Array”

我做错了什么?

谢谢

其他问题----

我有一个由用户以不同的动态形式输入的数组字符串。我想将数组中的每个值连同一个 itemid(所有值都相同)一起存储到一个表中

我的查询目前正在将整个数组插入到一行 text_value 中,并带有内爆。有没有一种方法可以代替遍历数组并对数组中的每个值运行查询,让我这样做?

当前查询:

$query = "INSERT INTO answers_tb (item_id, text_value)VALUES('$itemid','".implode(',', $answers) . "')";

这里是数组的print_r:

数组([0] => 选项 1 [1] => 选项 2 [2] => 选项 3 [3] => 选项 4 )

谢谢

最佳答案

您在 check_input() 中执行的所有操作都是为字符串设计的。考虑试试这个。

function check_input_array($data)
{
foreach ($data as &$d) {
$d = trim($d);
$d = stripslashes($d);
$d = htmlspecialchars($d);
$d = mysql_real_escape_string($d);
}
return $data;
}

现在您将有两个函数:适用于字符串的 check_input() 和适用于一维数组的 check_input_array()。

此外,请引用 fredrik 的回答,因为他发现您的代码忘记引用您放入 SQL 字符串中的值。


我的猜测是,对于您的示例数组,需要将以下内容插入到表中。

item_id|text_value
-------+----------
0|option 1
1|option 2
2|option 3
3|option 4

那看起来像这样。

$records = array();
foreach($array as $item_id => $text_value) {
$records[] = '("' . $item_id . '","' . $text_value . '")';

}
$sql = 'INSERT INTO answers_tb (item_id, text_value) VALUES';
$sql .= implode(',', $records);

关于php - 将表单输入存储到数组并查询数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474819/

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