Php 在for循环外部for循环中使用数组的值
我有下面的代码。我有一个表单设置,设置了10个输入字段,5个用于column1,5个用于column2Php 在for循环外部for循环中使用数组的值,php,for-loop,Php,For Loop,我有下面的代码。我有一个表单设置,设置了10个输入字段,5个用于column1,5个用于column2 try { $count = count($_POST['column1']); $sql = 'INSERT INTO tablename (column1, column2) VALUES '; for ($i=0; $i< $count; $i++) { $sql2 = '(' .$_POST['column1'][$i] . '
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
5被插入到我数据库的第1列,10被插入到第2列
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
我真正想要的是在第1行中插入5行,因此在第1行中插入1,6行,在第2行中插入2,7行,等等。
但是当$sql2在for循环中时,我不知道如何获取它的值。这可能吗?还是他们的另一种方法可以实现这一点?这是因为在循环的每次迭代中,变量$sql2都会被覆盖。您需要在上一次迭代后“附加”到值
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
替换:
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
与:
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
不要忘记初始化$sql2=''代码>在for循环之前
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
就现在的情况而言,你是开放的。请使用您的mysql查询。如果不是,则至少在生成查询之前使用 这是因为在循环的每次迭代中,变量$sql2都被覆盖。您需要在上一次迭代后“附加”到值
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
替换:
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
与:
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
不要忘记初始化$sql2=''代码>在for循环之前
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
就现在的情况而言,你是开放的。请使用您的mysql查询。如果不是,则至少在生成查询之前使用 这看起来像一个简单的bug
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
线路
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
正在重置$sql2-当它应该附加到它时,即
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
$sql2 .= '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
结果是:
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
INSERT INTO tablename (column1, column2) VALUES (1, 6),(2, 7),(3, 8),(4, 9),(5, 10)
整个固定片段,包括@strustmaster所述的修复SQL注入
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
$sql2 = '';
for ($i=0; $i< $count; $i++)
{
if ($sql2 != '') $sql2 .= ",";
$sql2 = '(' .mysql_real_escape_string($_POST['column1'][$i])
. ', ' . mysql_real_escape_string($_POST['column2'][$i]) . ')';
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
试试看
{
$count=count($_POST['column1']);
$sql='INSERT INTO tablename(column1,column2)值';
$sql2='';
对于($i=0;$i<$count;$i++)
{
如果($sql2!='')$sql2.=”,”;
$sql2='('.mysql\u real\u escape\u字符串($\u POST['column1'][$i])
“,”.mysql_real_escape_string($_POST['column2'][$i])”;
回显“$sql2'indside'
”;
}
回显“$sql2”在“
”之外;
$sql3=“$sql$sql2”;
$pdo->exec($sql3);
}
捕获(PDO$e)
{
$output='Error:'。$e->getMessage();
退出();
}
这看起来像一个简单的bug
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
线路
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
正在重置$sql2-当它应该附加到它时,即
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
$sql2 .= '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
结果是:
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
INSERT INTO tablename (column1, column2) VALUES (1, 6),(2, 7),(3, 8),(4, 9),(5, 10)
整个固定片段,包括@strustmaster所述的修复SQL注入
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
for ($i=0; $i< $count; $i++)
{
$sql2 = '(' .$_POST['column1'][$i] . ', ' . $_POST['column2'][$i] . ')';
if ($i <$count - 1) {
$sql2 .= ',';
}
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
try
{
$count = count($_POST['column1']);
$sql = 'INSERT INTO tablename (column1, column2) VALUES ';
$sql2 = '';
for ($i=0; $i< $count; $i++)
{
if ($sql2 != '') $sql2 .= ",";
$sql2 = '(' .mysql_real_escape_string($_POST['column1'][$i])
. ', ' . mysql_real_escape_string($_POST['column2'][$i]) . ')';
echo "$sql2 'indside'<br>";
}
echo "$sql2 'outside'<br>";
$sql3 = "$sql $sql2";
$pdo->exec($sql3);
}
catch (PDOException $e)
{
$output = 'Error: ' . $e->getMessage();
exit();
}
试试看
{
$count=count($_POST['column1']);
$sql='INSERT INTO tablename(column1,column2)值';
$sql2='';
对于($i=0;$i<$count;$i++)
{
如果($sql2!='')$sql2.=”,”;
$sql2='('.mysql\u real\u escape\u字符串($\u POST['column1'][$i])
“,”.mysql_real_escape_string($_POST['column2'][$i])”;
回显“$sql2'indside'
”;
}
回显“$sql2”在“
”之外;
$sql3=“$sql$sql2”;
$pdo->exec($sql3);
}
捕获(PDO$e)
{
$output='Error:'。$e->getMessage();
退出();
}
谢谢。成功了。我以前在附近看过,但没有看到记录。我对上面的代码做了一些细微的修改后得到了这个。我把你的if语句换成了我的。按照您的建议,将其下方的$sql2=替换为$sql2.=并在。在.mysql\u real\u escape\u string($\u POST['column1']我的if语句有一个bug-应该是if(sql2!=“”)…无论如何,好消息,做得很好。谢谢。我做了这个把戏。我以前看过它,但没有看到它被记录下来。我得到这个是为了工作,对上面的代码做了一些轻微的修改。我用我以前的语句替换了你的if语句。将它下面的$sql2=替换为$sql2。=如你所建议的,并在.in.mysql\u real\u转义符之间留出一个空格_string($\u POST['column1']my if语句有一个bug-应该是if(sql2!=“”)…不管怎样,好消息,做得好。谢谢。我以前使用过准备好的陈述,当它只是一个条目时,但我不知道如何在我有循环的情况下执行。你有什么想法,或者应该将其作为一个新问题发布吗?谢谢。我以前使用过准备好的陈述,当它只是一个条目时我不知道如何在这种情况下做,我有一个循环。你有什么想法在这里或这应该作为一个新的问题张贴?