2012-09-27 131 views
1

我需要插入相同的数据到我的MySQL表,而没有PHP循环。我这样做的原因是因为我有一个具有Auto_Increment功能的列,并且该列与其他表关联。MySQL:插入完全相同的数据多行无PHP循环

所以,我只需要插入一些完全相同数据和它的多行(动态),但通过下面一个INSERT语句的语法:

INSERT INTO outbox_multipart (TextDecoded) VALUES ('$SMSMessage') 

怎么能有这种单一的INSERT语法,但产生n个行数?

+0

建立一个触发器。 – wesside

+0

该怎么办?例如请。 –

回答

0
INSERT INTO outbox_multipart (TextDecoded) VALUES ('$SMSMessage'),('$SMSMessage') 
,('$SMSMessage'),('$SMSMessage') 

如果动态的,

$n=5; 
for ($i=0;$i<$n;$i++){$values.="('$SMSMessage'),";} 
$values=substr($values,0,-1); 

和SQL是:

INSERT INTO outbox_multipart (TextDecoded) VALUES $values 
2

你可以这样做:

INSERT INTO outbox_multipart (TextDecoded) VALUES ('$SMSMessage') 
, ('$SMSMessage2'), ('$SMSMessage3'), ('$SMSMessage4'); 
+0

'SMSMessage2'是一个变量,而不是一个字符串。 –

+0

他提到了相同的数据,即变量'$ SMSMessage'中的字符串 –

+0

@ coder1984我同意你的看法,但是OP在这方面并不清楚,他没有说变量。这是他写的声明中的'$ SMSMessage'。所以我做了他所问的问题:'如何得到这个单一的INSERT语法,但是产生n个行' –

0

尝试这样的事情

 $sql = mysql_query("INSERT INTO outbox_multipart (TextDecoded) VALUES ('$SMSMessage') 
     , ('$SMSMessage'),('$SMSMessage'),('$SMSMessage')"); 

此外,只是你知道,mysql_*已被弃用。因此,请尝试使用mysqli_ *或PDO进行查询。

0
mysql_query("INSERT INTO `table`(`this`) VALUES (`that`); INSERT INTO `table`(`this`) VALUES (`that`);"); 
0

假设你想插入3简单地这样做:

INSERT INTO outbox_multipart (TextDecoded) VALUES ('$SMSMessage'),('$SMSMessage'),('$SMSMessage');