即時通訊新的PHP和SQL語言,我有一個問題。 我想在循環時將我的數據插入數據庫。到目前爲止,我的代碼就是這樣。在循環中插入數據到mysql數據庫
for ($x = 0; $x <= 10; $x++) {
$sql="INSERT INTO exec (time, value) VALUES (now(), '34')";
}
但是,當我執行此代碼時,數據只會插入數據庫一次,而不是我想要的10次。我也想在每個循環之間增加一些延遲約10秒。任何幫助,將不勝感激!
即時通訊新的PHP和SQL語言,我有一個問題。 我想在循環時將我的數據插入數據庫。到目前爲止,我的代碼就是這樣。在循環中插入數據到mysql數據庫
for ($x = 0; $x <= 10; $x++) {
$sql="INSERT INTO exec (time, value) VALUES (now(), '34')";
}
但是,當我執行此代碼時,數據只會插入數據庫一次,而不是我想要的10次。我也想在每個循環之間增加一些延遲約10秒。任何幫助,將不勝感激!
您需要將數據庫與實際插入的連接。
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$stmt = $dbh->prepare("INSERT INTO exec (time, value) VALUES (now(), 34)");
for ($x = 0; $x <= 10; $x++) {
$stmt->execute();
sleep(1);
}
在循環之前放置'$ stmt = $ dbh-> prepare(「INSERT INTO exec(time,value)VALUES(now(),34)」);'。 –
@MarkusZeller非常感謝! –
這個工程!感謝你們兩位! :) – dean
您沒有運行查詢,您只是將一個變量設置爲一個字符串。因此,當循環結束時,字符串的最後一個查詢就是一行,它將執行該查詢。
使用string concatenation像$sql .= "INSERT ...;";
記得要添加一個;到你的sql語句的最後,以允許同時進行多個查詢。
作爲替代人們也可以用一個INSERT語句插入多值象例如:
INSERT INTO `table_name`
(`field1`, `field2`)
VALUES
(1, 2),
(3, 4),
...;
你實際上沒有查詢任何東西,你只是在循環中建立字符串。你爲什麼要延遲? – Qirel
如果您想重複使用該語句,則應始終使用prepare。只是創建一個字符串不會執行查詢。 –
啊。我看到了我的錯誤。我想要延遲,所以無論何時將數據插入到數據庫中,時間都會不同。謝謝 – dean