gpt4 book ai didi

PHP:一次获取一条MySQL记录

转载 作者:行者123 更新时间:2023-11-29 04:56:49 25 4
gpt4 key购买 nike

我制作了一个 PHP 脚本,它根据名称创建 Logo ,这些名称来自具有数千条记录的 MySQL 数据库。

每个记录的 Logo 创建最多可能需要几秒钟,因此整个过程需要几天时间。我现在制作的脚本,预先获取所有数据,然后开始制作 Logo 。但是当脚本运行时,尚未处理的记录中的数据可能会发生变化!

如何遍历结果集,同时在处理下一条记录时仍获取最新数据?

这是我现在使用的:

        $sql = "SELECT * FROM names";
$mysqli = new mysqli($server, $user, $password, $database);
if ($mysqli->multi_query($sql)) {
do {
if ($result = $mysqli->store_result()) {
while ($record = mysqli_fetch_assoc($result)) {
$records[] = $record
}
$result->close();
}
} while ($this->DB->next_result());
}
foreach($records as $record) {
//create the logo from $record['name']
}

最佳答案

假设您对数据库中的每个条目都有唯一的 ID,并且您确定该脚本可以“永远”运行,那么这样的事情应该可行:

$result = mysql_query('SELECT `id` FROM `logos`');
$ids = array();

while($id = mysql_fetch_row($result)){
$ids[] = $id[0];
}

// we now have all the ids stored in an array which we'll loop through.

foreach($ids as $id){
$result = mysql_query('SELECT * FROM `logos` WHERE `id`=' . $id);
$row = mysql_fetch_assoc();

// process
}

这有什么作用呢?好吧,我们首先获取当前驻留在数据库中的所有 ID。我们将它们存储在一个变量中,循环遍历它并获取每一行的最新数据。

正如其他人所说,您不能在拥有最新数据的同时迭代结果集。这是替代方案。

关于PHP:一次获取一条MySQL记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5824506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com