after wordpress update to 3.5+ i get many errors in plugin wpdb::prepare()

prepare() takes at least 2 parameters. Most of your calls to prepare() are not needed.

For example:

$blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs"));

In this code, if the call to $wpdb->prepare() were valid, it wouldn’t do anything. The function doesn’t do anything to the first parameter. It manipulates the values in the other parameters passed and then inserts those parameters into the first parameter.

Rewrite it as:

$blogids = $wpdb->get_col( "SELECT blog_id FROM $wpdb->blogs" );

After all single parameter prepare() calls are removed you should have something like this:

// Update tables with new columns used in this version
$checkmenus = $wpdb->query( $wpdb->prepare( "SELECT * FROM %s LIMIT 1," $jsrm_menu_table ) );
$menucols = mysql_fetch_array($checkmenus);

if ( ! isset( $menucols['menuorder'] ) )
    $wpdb->query( "ALTER TABLE $jsrm_menu_table ADD menuorder mediumint(9) NOT NULL" );

if ( ! isset( $menucols['label'] ) )
    $wpdb->query( "ALTER TABLE $jsrm_menu_table ADD label tinytext NOT NULL" );

if ( ! isset( $menucols['itemheader'] ) )
    $wpdb->query( "ALTER TABLE $jsrm_menu_table ADD itemheader tinytext NOT NULL" );

if ( ! isset($menucols['valueheader'] ) )
    $wpdb->query( "ALTER TABLE $jsrm_menu_table ADD valueheader tinytext NOT NULL" );

// Loop to update the menu table value headers columns according to number of values.
for ( $v = 2; $v <= JSRM_VALUE_COLS; $v++ ) {
    $valh="valueheader" . $v;
    if ( ! isset( $menucols[$valh] ) )
        $wpdb->query( "ALTER TABLE $jsrm_menu_table ADD $valh tinytext NOT NULL" );
}

$checkitems = $wpdb->query( "SELECT * FROM $jsrm_item_table LIMIT 1" );
$itemscols = mysql_fetch_array($checkitems);

if ( ! isset( $itemscols['image'] ) )
    $wpdb->query( "ALTER TABLE $jsrm_item_table ADD image tinytext" );

if ( ! isset( $itemscols['linked'] ) )
    $wpdb->query( "ALTER TABLE $jsrm_item_table ADD linked tinyint(1) NOT NULL" );

if ( ! isset( $itemscols['linkurl'] ) )
    $wpdb->query( "ALTER TABLE $jsrm_item_table ADD linkurl tinytext" );

if ( ! isset( $itemscols['itemhidden'] ) )
    $wpdb->query( "ALTER TABLE $jsrm_item_table ADD itemhidden tinyint(1) NOT NULL" );

// Loop to update the menu items value columns according to number of values.
for ( $v = 2; $v <= JSRM_VALUE_COLS; $v++ ) {
    $val="value" . $v;
    if ( ! isset($menucols[$vh] ) )
        $wpdb->query( "ALTER TABLE $jsrm_item_table ADD $val tinytext NOT NULL" );
};

update_option( 'jsrm_db_version', JSRM_DB_VERSION );

I also changed the conditionals style and added consistent white space to make the code easier for humans to read.