我的$ _POST名称是: $ _POST [p_new_1],$ _POST [p_new_2],$ _POST [p_new_3]等等取决于$ _POST [number]的值 (上面是$ _POST [数字]等于4)。 现在我需要通过以下方式将该值添加到表中:
mysqli_query($con,"INSERT INTO `tablename` (`Name`) VALUES ('$_POST[p_new_1]')");
但只有当我知道$ _POST [number] = 2时它才有效;有时$ _POST [number]没有大于2的值或值,一般情况下应该是:
if($_POST[number]!=NULL)
for ($i = 1; $i < $_POST[number]; $i++) {
mysqli_query($con,"INSERT INTO `table` (`Name`) VALUES ('$_POST['p_new_'.$i]')");
}
但是使用这段代码我总是有错误。我也尝试过:
if($_POST[number]!=NULL)
for ($i = 1; $i < $_POST[number]; $i++) {
mysqli_query($con,"INSERT INTO `table` (`Name`) VALUES ('$_POST['p_new_$i']')");
}
但同样的错误。
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /test.php on line 18
如何正确写出来?
答案 0 :(得分:2)
你的双引号令这个过程混乱。将其更改为:
if($_POST[number]!=NULL)
for ($i = 1; $i < $_POST[number]; $i++) {
$key = 'p_new_'.$i;
mysqli_query($con,"INSERT INTO `table` (`Name`) VALUES ('".$_POST[$key]."')");
}
答案 1 :(得分:1)
试试这个,
if(isset($_POST[number]) and is_numeric($_POST[number])){
for ($i = 1; $i < $_POST[number]; $i++) {
$name=isset($_POST['p_new_'.$i]) ? $_POST['p_new_'.$i] : "";
mysqli_query($con,"INSERT INTO table (Name) VALUES ('".$name."')");
}
}
答案 2 :(得分:0)
试试这段代码:
if(($_POST['number']!=NULL) and (is_numeric($_POST['number'])))
for ($i = 1; $i < $_POST['number']; $i++)
{
mysqli_query($con,"INSERT INTO `table` (`Name`) VALUES (".$_POST['p_new_'.$i].")");
}
答案 3 :(得分:0)
嗯,由于我的知识非常有限,我可以发现一个问题:
变量必须是双引号才能将其值正确传递给查询:
".$_POST['p_new_'.$i]."
这可以防止变量被视为字符串。