$wpdb->get_results() into foreach() returns always the word “Array” on top of the list . How to get rid of?

I’m not sure why you are getting errors but I can show you haw to defensively find and react to them.

This is your code

$rows = $wpdb->get_results($wpdb->prepare("SELECT `rul_value` FROM " . _ROLES_  . " WHERE `rul_type` = %s AND `rul_value` LIKE %s", 'role', '%intera%'));
foreach($rows as $row) {
    $singleParts .= $row->rul_value . "\n";
}

Let’s make some changes.

Do you have data inside $singleParts already? If not, we can force it to be a clean empty var with $singleParts="";.

Like this:

$rows = $wpdb->get_results($wpdb->prepare("SELECT `rul_value` FROM " . _ROLES_  . " WHERE `rul_type` = %s AND `rul_value` LIKE %s", 'role', '%intera%'));
$singleParts="";
foreach($rows as $row) {
    $singleParts .= $row->rul_value . "\n";
}

Now we can cross that off the list of things going wrong. Next, you should inspect for an error. (Care of this answer)

if($wpdb->last_error !== ''){
    echo 'Opps something went wrong: ';

    $str   = htmlspecialchars( $wpdb->last_result, ENT_QUOTES );
    $query = htmlspecialchars( $wpdb->last_query, ENT_QUOTES );

    print "<div id='error'>
    <p class="wpdberror"><strong>WordPress database error:</strong> [$str]<br />
    <code>$query</code></p>
    </div>";
}else{
    # your code
}

Finally we can inspect the data you got back. We expected a string so we should make sure we got a string:

if(is_string($row->rul_value)){
    # your code
}else{
    echo "I was not expecting this. We got: <pre>";
    print_r($row->rul_value);
    echo "</pre>";
}

putting it al together we have:

$rows = $wpdb->get_results($wpdb->prepare("SELECT `rul_value` FROM " . _ROLES_  . " WHERE `rul_type` = %s AND `rul_value` LIKE %s", 'role', '%intera%'));
$singleParts="";
if($wpdb->last_error !== ''){
    echo 'Opps something went wrong: ';

    $str   = htmlspecialchars( $wpdb->last_result, ENT_QUOTES );
    $query = htmlspecialchars( $wpdb->last_query, ENT_QUOTES );

    print "<div id='error'>
    <p class="wpdberror"><strong>WordPress database error:</strong> [$str]<br />
    <code>$query</code></p>
    </div>";
}else{
    # no wpdb error
    foreach($rows as $row) {
        if(is_string($row->rul_value)){
            # it is the string we were looking for
            $singleParts .= $row->rul_value . "\n";
        }else{
            # not a string - what did we get?
            echo "I was not expecting this. We got: <pre>";
            print_r($row->rul_value);
            echo "</pre>";
        }   
    }
}

Just echoing out possibly senstive data is not a great idea in production but for your development, this will help you trace where the errors are coming from. I recommend always assuming your data is mangled and checking it before doing things with it. Code is dumb and will do exactly what it was told regardless of our intentions.

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)