Você tem a sintaxe errada; não há necessidade de colocar um ponto dentro de uma string com aspas duplas. Em vez disso, deveria ser mais como
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");
Você pode confirmar isso imprimindo a string para ver se ela fica idêntica ao primeiro caso.
Claro que não é uma boa ideia para simplesmente injetar variáveis na string de consulta assim por causa do perigo da injeção de SQL. No mínimo, você deve escapar manualmente o conteúdo da variável com
mysql_real_escape_string
, o que tornaria talvez assim:$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);
Observe que dentro do primeiro argumento de
sprintf
o sinal de porcentagem precisa ser dobrado para acabar aparecendo uma vez no resultado.