如何在PHP/MySQL中循环特定列名并清除这些字段?
我正在尝试执行一个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->
$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“错误说明了错误所在。请了解准备好的语句是什么以及应该如何使用它们。您当前所做的是完全错误的。错误说明了什么是错误的。请了解准备好的语句是什么以及它们应该如何使用。你现在所做的是完全错误的。