onsulta SQL LIKE falhando - erro fatal na instrução preparada

Eu tenho o seguinte código

$countQuery = "SELECT ARTICLE_NO FROM ? WHERE upper(ARTICLE_NAME) LIKE '% ? %'";
if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("ss", $table, $brand);
    $numRecords->execute();
    $data = $con->query($countQuery) or die(print_r($con->error));
    $rowcount = mysql_num_rows($data);
    $rows = getRowsByArticleSearch($query, $table, $max);
    $last = ceil($rowcount/$page_rows);
}

O que deve funcionar bem. No entanto, recebo o erro de que:

Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à versão do servidor MySQL para a sintaxe correta a ser usada perto de '? WHERE superior (ARTICLE_NAME) CURTA '%?%' 'Na linha 1

Se eu colocar

SELECT ARTICLE_NO FROM AUCTIONS WHERE upper(ARTICLE_NAME) LIKE '% o %';

A consulta funciona bem. A tabela $ é definida acima e a consulta é recebida de GET, e ambos são valores válidos corretos. Por que isso está falhando?

edit: alterando para:

$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE '% ? %'";

if ($numRecords = $con->prepare($countQuery)) {

    $numRecords->bind_param("s", $query);

resultados no erro:

Aviso: mysqli_stmt :: bind_param () [mysqli-stmt.bind-param]: O número de variáveis não corresponde ao número de parâmetros na instrução preparada em C: \ Arquivos de programas \ EasyPHP 3.0 \ www \ prog \ get_records.php em linha 38

Comandos fora de sincronia; você não pode executar este comando agora

enquanto qu

$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE ?";

if ($numRecords = $con->prepare($countQuery)) {

    $numRecords->bind_param("s", "%".$query."%");

resulta e

Erro fatal: Não é possível passar o parâmetro 2 por referência em C: \ Arquivos de programas \ EasyPHP 3.0 \ www \ prog \ get_records.php na linha 38

e por fi

$countQuery = "SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE ? ";

if ($numRecords = $con->prepare($countQuery)) {

    $numRecords->bind_param("s", $query);

dará apenas:

Comandos fora de sincronia; você não pode executar este comando agora

É impossível usar um parâmetro para um estatuto LIK

questionAnswers(4)

yourAnswerToTheQuestion