For people landing from Google search, you can use numbered placeholders (%1$s, %2$s, etc.) in $wpdb->prepare() to use the same search term on multiple columns.
The WP documentation states that: "for compatibility with old behavior, numbered or formatted string placeholders (eg, %1$s, %5s) will not have quotes added by this function, so should be passed with appropriate quotes around them."
Since we use numbered placeholders we will also have to put the quotes:
$query = $wpdb->prepare( 'SELECT * FROM table_name WHERE column_name LIKE \'%1$s\' OR other_column_name LIKE \'%1$s\'', $search_term );
$result = $wpdb->get_results( $query );
Literal percentage signs need to be written like %%:
$query = $wpdb->prepare( 'SELECT * FROM table_name WHERE column_name LIKE \'%%%1$s%%\' OR other_column_name LIKE \'%%%1$s%%\'', $search_term );
$result = $wpdb->get_results( $query );
So the code from the initial question would look like:
$foods = $wpdb->get_results( $wpdb->prepare( 'SELECT id, foodname, namevariations, calories, carbs, fat, protein, sodium FROM foodsTable WHERE namevariations LIKE \'%%%1$s%%\' OR foodname LIKE \'%%%1$s%%\'', $search_text ), ARRAY_A );