0

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'

何か案は?

4

3 に答える 3

2

代わりは "UPDATE users SET $row = NULL WHERE user_id = $user_id"

試す"UPDATE users SET {$row['column_name']} = NULL WHERE user_id = $user_id"

于 2012-10-28T13:40:07.433 に答える
1

あなた$rowは配列です。試す

foreach ($rows as $id => $value {
   ... SET $value = NULL ...
}

あなたは$row使用を見ることができます:

var_dump($row);
于 2012-10-28T13:31:36.700 に答える
0

$rowは配列です。選択した行から特定のフィールドにアクセスするには、次を使用します。$row['column_name']

于 2012-10-28T13:29:18.307 に答える