Here's what I've ended up with that seems to work:
$arr = explode(" ", $searchStr,3);//limits the search to three terms
$termArray[] = $mysqli->real_escape_string($searchStr);//searches for an exact match first
foreach($arr as $element) {
$termArray[] = $mysqli->real_escape_string($element);
}
foreach($termArray as $element){
$sqlArray[] = '(SELECT p.product_id, p.product_name, p.product_description, p.product_price, p.product_category, p.product_artist_id, p.product_image_small, p.perms, CONCAT(a.first_name," ",a.last_name) fullname FROM iscript_products p LEFT JOIN iscript_artists a ON p.product_artist_id = a.artist_id WHERE product_name REGEXP "[[:<:]]'.$element.'[[:>:]]" ORDER BY '.$ordertxt.')';
}
$sql = implode("UNION", $sqlArray);
$stmt = $mysqli->prepare($sql);