How to remove htmlentities() values from the database?

前端 未结 6 1588
星月不相逢
星月不相逢 2021-02-08 04:42

Long before I knew anything - not that I know much even now - I desgined a web app in php which inserted data in my mysql database after running the values through htmlent

6条回答
  •  梦如初夏
    2021-02-08 05:01

    I ended up using this, not pretty, but I'm tired, it's 2am and it did its job! (Edit: on test data)

    $tables = array('users', 'users_more', 'users_extra', 'forum_posts', 'posts_edits', 'forum_threads', 'orders', 'product_comments', 'products', 'favourites', 'blocked', 'notes');
    foreach($tables as $table)
        {       
            $sql = "SELECT * FROM {$table} WHERE data_date_ts < '{$encode_cutoff}'";
            $rows = $database->query($sql);
            while($row = mysql_fetch_assoc($rows))
                {
                    $new = array();
                    foreach($row as $key => $data)
                        {
                            $new[$key] = $database->escape_value(html_entity_decode($data, ENT_QUOTES, 'UTF-8'));
                        }
                    array_shift($new);
                    $new_string = "";
                    $i = 0;
                    foreach($new as $new_key => $new_data)
                        {
                            if($i > 0) { $new_string.= ", "; }
                            $new_string.= $new_key . "='" . $new_data . "'";
                            $i++;
                        }
                    $sql = "UPDATE {$table} SET " . $new_string . " WHERE id='" . $row['id'] . "'";
                    $database->query($sql);
                    // plus some code to check that all out
                }
        }
    

提交回复
热议问题