sql >> Base de Datos >  >> RDS >> Mysql

Error en la consulta SQL LIKE:error fatal en la declaración preparada

Para LIKE cláusula, use esto:

SELECT ARTICLE_NO FROM AUCTIONS1 WHERE upper(ARTICLE_NAME) LIKE CONCAT('%', ?, '%')

En cuanto al nombre de la tabla, es una práctica extremadamente mala tener nombres de tablas como parámetros.

Si por alguna razón aún necesita hacerlo, deberá incrustarlo en el texto de la consulta antes de preparar la consulta:

$countQuery = "SELECT ARTICLE_NO FROM $table_name WHERE upper(ARTICLE_NAME) LIKE CONCAT('%', ? ,'%')";
if ($numRecords = $con->prepare($countQuery)) {
    $numRecords->bind_param("s", $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);
}