我是编程的新手,我正在尝试为我姐姐建立一个网站作为第一个项目。这是一个相当简单的照片库。
我现在要做的一件事是循环遍历我的计算机上的整个目录(我知道当我把它放在网络服务器上时必须更改)并将图像路径更新到MySQL。我已经建立了与数据库的良好连接,但遇到了我的循环问题。
foreach(glob($dir) as $file) {
$values[] = $file;
};
while (list($var, $val) = each($values)){
$query = ("INSERT INTO emilys_photos.images (path, who_update) VALUES ($val, 'morgan')");
$stmt = $dbh->prepare($query);
$stmt->execute();
}
我知道这是因为我的while循环而破坏,但我在调试它时遇到了麻烦,并弄清楚它在哪里突破。我不知道如何进行批量INSERT,我已经阅读了大量的堆栈溢出答案,并尝试了使用内爆但他们没有任何工作的内容。万分感谢!
答案 0 :(得分:0)
顺便说一句,我建议使用参数绑定,正如@ spencer7595所说。将您的代码更改为:
$query = "
INSERT INTO emilys_photos.images
(path, who_update)
VALUES (:path, 'morgan')
";
$stmt = $dbh->prepare($query);
$stmt->execute([':path' => $val, ]);
我也做了一些字符串包装 - PHP和SQL数据库都很好用,这使得所以更具可读性。