I need to update id column of several tables with php uniqid() values
after running this code - all rows inside each table has the same value
how to set different value for each row ?

$arr = ['lorem', 'ipsum', 'dolor'];  // table names
foreach($arr as $tb){
    $st = $db-> prepare("select * from " . $tb);
    $st -> execute();
    $arrb = $st->fetchAll();
    foreach($arrb as $elb){
        $id = uniqid();
        $sqb = "update " . $tb . " set id = :aid";
        $stb = $db->prepare($sqb);
        $stb->execute([":aid" => $id]);
    }
}

推荐答案

问题是,在外部Foreach循环的每次迭代开始时,您使用由uniqid()函数生成的相同值更新所有行.您需要使用由uniqid()函数生成的唯一值来更新每一行.

Here's one way you can fix this issue:

$arr = ['lorem', 'ipsum', 'dolor'];  // table names
foreach($arr as $tb){
    $st = $db-> prepare("select * from " . $tb);
    $st -> execute();
    $arrb = $st->fetchAll();
    foreach($arrb as $elb){
        $id = uniqid();
        $sqb = "update " . $tb . " set id = :aid where id = :old_id";
        $stb = $db->prepare($sqb);
        $stb->execute([":aid" => $id, ":old_id" => $elb['id']]);
    }
}

在此代码中,对于内部Foreach循环的每次迭代,uniqid()函数将生成一个新值,并使用该新值更新特定行的id列.

Php相关问答推荐

打印SQL表内容时在DIV内添加断点

为什么注册SIGHUP的处理程序函数会阻止在PHP CLI中等待输入时点击X关闭Xterm窗口?""

有条件的运费率基于购物车小计与WooPayments货币转换

Yahoo Finance API文件_GET_CONTENTS 429请求太多

如何在不指定symfony列的情况下从数据库中获取行数组

PHP中的圆生成器在国际日期变更线上失败

如何使用这种格式构建XML?

WooCommerce数量减号和加号图标未显示

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

我的邮箱中的链接在我的URL中添加了一个

PHP文件上载问题-";Move_Uploaded_Files";未按预期工作

向元素添加类时添加循环错误

根据页面的最后修订日期设置 MediaWiki 内部链接的样式

为什么在 phpunit 的开头测试 PHP_VERSION?

PHP 中的正则表达式,具有字符范围,但不包括特定字符

Laravel Factory - 在单列中生成具有随机迭代量的假 json 数组数据

在 laravel 中更新表单时如何在 Select 选项中保留旧值?

Laravel 10 单元测试看不到来自 Artisan Command 的数据库更改

如何获取最后一条消息属于 Laravel 中特定用户的对话列表

为什么 PDO 允许使用带命名占位符的索引数组,但仅在禁用仿真时才允许?