php循环并插入

Posted

技术标签:

【中文标题】php循环并插入【英文标题】:php Loop and insert into 【发布时间】:2013-07-22 06:25:16 【问题描述】:

我正在使用带有 mysqlphp 表单。 我有一个循环,我想将数据库中的数据取决于列。 例如对于data1->插入column1,data2->column2

在 i= 1 到 5 的循环中我试试这个

 mysql_query("INSERT INTO day(numb, g['$i']) VALUES('$num', '$tout' ) ") or die(mysql_error()); 

但它不起作用。您还有其他解决方案吗?

谢谢

【问题讨论】:

错误说明了什么? 你能显示你的循环代码吗? 不要使用mysql_*!并构造您的查询,而不是循环并首先与服务器建立许多连接,其次是给出什么错误 您正在尝试将两个值插入到单个表达式的结果中......您想要完成什么,我们可以帮助您 首先把 g['$i'] 改成 g[$i] 现在解释清楚你想要什么 【参考方案1】:

正如其他人建议使用mysqli,我也会。 您的查询如下所示:

mysqli_query($con,"INSERT INTO day (numb, $g[$i]) VALUES('".$num."', '".$tout."' )") or die(mysql_error());

提醒一下$con是用来连接DB的变量

mysqli_connect(host,username,password,dbname);

【讨论】:

谢谢,可以在同一行插入吗?现在它可以工作,但总是创建不同的行。 你只想用一行来存储? 是一行但不同的列,列会随着循环的索引而变化。 插入一行后,再次添加肯定会产生一个新行。每次都必须创建一个新列才能在一行中插入值,但要以列方式插入。 您必须使用ALTER 命令在循环中添加新列。 ALTER TABLE day ADD column-name VARCHAR( 255 ) after previous-column-name 然后将值添加到此列。你明白了吗?【参考方案2】:

使用这个:按下$g 是一个变量

mysql_query("INSERT INTO day(`numb`, `".$g['$i']."`) VALUES('".$num."', '".$tout."' ) ") or die(mysql_error());

【讨论】:

【参考方案3】:

$i 周围删除'

mysql_query("INSERT INTO day (numb, $g[$i]) VALUES('$num', '$tout')") or die(mysql_error()); 

MySQLINSERT INTO语法如下——INSERT INTO table_name (column1, column2, ..) VALUES (column1value, column2value, ..)

或者INSERT INTO table_name VALUES (column1value, column2value, ...),当您知道所有行名并插入它们的值时。

第一种方法允许您插入选定的行,而第二种方法要求您插入所有行值。

数组$g[] 前面没有美元符号。此外,在使用索引时,您不必使用引号。

还请注意,mysql_* 扩展名已弃用且不安全,请查看 mysqli 或 pdo

【讨论】:

你的意思是column1, colum2而不是row1, row2【参考方案4】:

你也可以使用下面的代码

mysql_query("INSERT INTO day (numb, $g[$i]) VALUES('$num', '$tout')") or die(mysql_error());

【讨论】:

以上是关于php循环并插入的主要内容,如果未能解决你的问题,请参考以下文章

在PHP中循环插入查询[重复]

php 通过循环更新

PHP 不会从 for 循环在数据库中插入重复项

通过 for 循环和 php 数组进行多次插入(通过 jQuery AJAX 接收)

PHP / MySQL:如何使用WHILE循环插入数据库[重复]

PHP mysqli_fetch_array() 不会在 while 循环中将所有选择查询插入到表中