2012-09-27 61 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');