我是php和sql语言的新手,我有一个问题。 我想在循环时将数据插入数据库。到目前为止,我的代码是这样的。
for ($x = 0; $x <= 10; $x++) {
$sql="INSERT INTO exec (time, value) VALUES (now(), '34')";
}
但是,当我执行此代码时,数据只会插入数据库一次,而不是按照我的意图插入数据库。我还想在每个循环之间添加一些延迟大约10秒。任何帮助,将不胜感激!
答案 0 :(得分:0)
您没有运行查询,只是将变量设置为字符串。因此,当循环结束时,字符串具有最后一个查询,该查询只是一行,它将执行该操作。
像$sql .= "INSERT ...;";
一样使用string concatenation
记得添加一个;在sql语句的末尾,允许同时进行多个查询。
作为替代方案,也可以使用一个插入语句插入多个值,例如:。
INSERT INTO `table_name`
(`field1`, `field2`)
VALUES
(1, 2),
(3, 4),
...;
答案 1 :(得分:0)
您需要连接数据库和实际插入。
$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);
}