我是编程界的新手,我正试图为我姐姐建立一个网站作为第一个项目。这是一个相当简单的照片库。
我现在想做的一件事是循环浏览我电脑上的整个目录(我知道当我把它放在网络服务器上时,必须更改它),并将图像路径更新到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,我读过很多堆栈溢出的答案,并尝试过他们使用内爆所做的,但也没有任何一个能起作用。非常感谢!
顺便说一句,我建议使用参数绑定,正如@spencer7595所说。将您的代码更改为:
$query = "
INSERT INTO emilys_photos.images
(path, who_update)
VALUES (:path, 'morgan')
";
$stmt = $dbh->prepare($query);
$stmt->execute([':path' => $val, ]);
我也做了一些字符串包装——PHP和SQL数据库都很好,这使得的东西可读性更强。