es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Devolver resultados basados en números en una declaración similar a PDO.

Estoy consultando una base de datos donde todos los valores se almacenan como VARs. Estoy intentando hacer una consulta de resultados basada en una variable de tipo String.

Aquí está mi consulta:

$searchQueryString = strval($searchQuery);
$searchQueryFinal = "%$searchQueryString%";
echo $searchQueryString;
$SearchQuerySQL = "SELECT * FROM PurchaseHistory WHERE MainTicketNumbers LIKE ?";
$SearchQuerySTMT = $conn->prepare($SearchQuerySQL);
$SearchQuerySTMT->execute([$searchQueryFinal]);

Mi desafío es que cuando suministro un valor numérico a la instrucción SQL, no devuelve resultados. Agregué la línea strval para intentar convertir la búsqueda en una cadena en lugar de un entero. ¿Alguna idea?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema podría estar relacionado con el tipo de columna “MainTicketNumbers” en la tabla PurchaseHistory. Si es una columna de tipo cadena / varchar, la consulta debería funcionar como se esperaba con el uso de los caracteres comodín ‘%’. Sin embargo, si es una columna de tipo entero / número, la consulta no funcionará ya que los caracteres comodín no se aplican a los números.

    Primero, verifica el tipo de columna “MainTicketNumbers” y asegúrate de que sea una columna de tipo cadena / varchar. Si no lo es, es posible que debas reconsiderar tu enfoque y considerar el uso de un tipo de consulta diferente o modificar el tipo de datos de la columna.

    Si el tipo de columna es una cadena / varchar y aún no obtienes resultados, intenta usar la palabra clave LIKE sin la instrucción preparada y verifica si eso funciona. Por ejemplo:

    $sql = "SELECT * FROM PurchaseHistory WHERE MainTicketNumbers LIKE '%$searchQuery%'";
    $result = mysqli_query($conn, $sql);
    

    Si esa consulta devuelve resultados, el problema podría estar relacionado con la implementación de la instrucción preparada. En ese caso, considera modificar la sintaxis de la instrucción preparada o utilizar un método diferente para consultar la base de datos.

Comments are closed.