如何在PHP/MySQL中循环特定列名并清除这些字段?

如何在PHP/MySQL中循环特定列名并清除这些字段?,mysql,foreach,pdo,fatal-error,Mysql,Foreach,Pdo,Fatal Error,我正在尝试执行一个PHP/MySQL查询,以选择一组列并清除特定记录的字段: $sth = $dbh->query("SELECT column_name FROM information_schema.columns WHERE table_name = 'users' AND column_name like '%_abc'"); $rows = $sth->

我正在尝试执行一个PHP/MySQL查询,以选择一组列并清除特定记录的字段:

$sth = $dbh->query("SELECT column_name
                    FROM information_schema.columns
                    WHERE table_name = 'users'
                    AND column_name like '%_abc'");

$rows = $sth->fetchAll();

foreach ($rows as $row){

    $sth = $dbh->prepare("UPDATE users
                          SET $row = NULL
                          WHERE user_id = $user_id");

    $sth->execute();        

}
但是,我得到以下错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: 
Column not found: 1054 Unknown column 'Array' in 'field list'

有什么想法吗?

$row
是一个数组。要从所选行访问特定字段,请使用
$row['column\u name']
$row
是一个数组。要从所选行访问特定字段,请使用
$row['column\u name']

您的
$row
是一个数组。试一试

foreach ($rows as $id => $value {
   ... SET $value = NULL ...
}
您可以使用以下方法查看
$row

var_dump($row);

您的
$row
是一个数组。试一试

foreach ($rows as $id => $value {
   ... SET $value = NULL ...
}
您可以使用以下方法查看
$row

var_dump($row);
反而
“更新用户
设置$row=NULL
其中user\u id=$user\u id“

尝试更新用户 设置{$row['column_name']}=NULL 其中user\u id=$user\u id“

“更新用户
设置$row=NULL
其中user\u id=$user\u id“

尝试更新用户 设置{$row['column_name']}=NULL
其中user\u id=$user\u id“

错误说明了错误所在。请了解准备好的语句是什么以及应该如何使用它们。您当前所做的是完全错误的。错误说明了什么是错误的。请了解准备好的语句是什么以及它们应该如何使用。你现在所做的是完全错误的。