Estamos actualizando nuestro MS SQL Server de SQL Server 2012 a la versión actual. Estamos utilizando PDO con el controlador ODBC de M$ que se ejecuta en CentOS Linux. La versión de PHP es 7.4.
El problema es que si hay una condición (preparada) como
WHERE variable = ?y la variable es de tipo VARCHAR sale un error
[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]The data types varchar and text are incompatible in the equal to operatorUn código de ejemplo es así:
$stmt = $db->prepare("SELECT * FROM Users WHERE user_login = ? AND user_application = ?"); $stmt->execute([$login, $app]);user_login y user_application son columnas VARCHAR y $login y $app variables de cadena normales de PHP.
No fue un problema con el servidor SQL anterior, la comparación salió bien. No quiero pasar por todo el código base para eludir esto en miles de lugares, entonces, ¿hay alguna configuración en algún lugar (servidor SQL, controlador ODBC, configuración de PHP, ...) donde configurar las cosas "bien" otra vez?
Parece que fue una especie de error de privilegios después de la migración de la base de datos. Eliminé al usuario que había venido de la operación de restauración y le otorgué los privilegios correctos nuevamente. Solo que, estoy bastante seguro, ya lo había hecho una vez. Y creo que no hubo errores de inicio de sesión al intentar usar la base de datos.
Lo siento por la pregunta tonta. Aunque, siempre he dicho, que no hay preguntas tontas, solo preguntas tontas...
madeja