Is octoberCMS compatible with mssql? starting to think that its not
been trying to set up my project for a few days, and mssql refuses to connect, each time I solve one issue, another one pops up
has anyone seen this error before?
“MAX_PROVS: Connection string is not valid?”
Hi @michael,
Sorry to see the trouble you are having with this. The error suggests that the database hostname, database name, or authentication credentials are invalid.
@daftspunky
With the help of a more experienced colleague, we have found the issue and fixed,
Problem seems to be because, while October is putting together the connection string, it adds an extra comma between the host and the port when there is no dblib library present in the available drivers.
This can be found in the SetupHelper.php file, inside the checkDatabase function, case ‘sqlsrv’.
Should I open a ticket for this, so that it can be fixed? Or just let it be?
also, the connection string is missing the Encrypt and TrustServerCertificate parameters, which are required by odbc 18
Here is a reference to the code you mentioned, if you can advise precisely the issue that would be ideal, so we can patch the code.
case 'sqlsrv':
$availableDrivers = PDO::getAvailableDrivers();
$_port = $port ? ','.$port : '';
if (in_array('dblib', $availableDrivers)) {
$dsn = 'dblib:host='.$host.$_port.';dbname='.$name;
}
else {
$dsn = 'sqlsrv:Server='.$host.(empty($port) ? '':','.$_port).';Database='.$name;
}
break;
Otherwise, we can just remove the validation and let Laravel handle it.
@daftspunky
well if you notice, it calls $_port in both the if and the else statement, where as in the else statement, it should only call $port
so, when it goes to the else statement, it always adds an extra comma after the host
it adds the comma in both the assignment of $_port, and in the else statement, so the connection string has two commas and brakes
1 Like