Я знаю, что пытаюсь использовать этот синтаксис для подключения из Joomla к SQL Server. Тем не менее, это бросает ERROR 500
Что такое правильный Synatx для подключения из Joomla для SQL Server?
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$uid = "user";
$pwd = "pwd";
$DB = "database";
$serverName = "IP";
$connectionInfo = array("UID" => $uid, "PWD" => $pwd, "Database"=> $DB, "ReturnDatesAsStrings" => true);
$conn = sqlsrv_connect( $serverName, $connectionInfo);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
РЕДАКТИРОВАТЬ
Я также попробовал этот синтаксис и также получил ошибку 500 ->
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
$option = array();
$option['driver'] = 'mssql';
$option['host'] = 'server';
$option['user'] = 'user';
$option['password'] = 'pass';
$option['database'] = 'db';
$option['prefix'] = '';
$db = JDatabase::getInstance( $option );
$query = $db->getQuery(true);
$query = "SELECT * from Test";
$db->setQuery($query);
$results = $db->loadObjectList();
РЕДАКТИРОВАТЬ
Ниже приведены var_dump($db)
Результаты
object(JDatabaseDriverMssql)[1788]
public 'name' => string 'mssql' (length=5)
protected 'nameQuote' => null
protected 'nullDate' => string '1900-01-01 00:00:00' (length=19)
private '_database' (JDatabaseDriver) => string 'db' (length=9)
public 'serverType' => null
protected 'connection' => null
protected 'count' => int 0
protected 'cursor' => null
protected 'debug' => boolean false
protected 'limit' => int 0
protected 'log' =>
array (size=0)
empty
protected 'timings' =>
array (size=0)
empty
protected 'callStacks' =>
array (size=0)
empty
protected 'offset' => int 0
protected 'options' =>
array (size=7)
'driver' => string 'mssql' (length=5)
'host' => string 'server' (length=25)
'user' => string 'user' (length=7)
'password' => string 'pass' (length=9)
'database' => string 'db' (length=9)
'prefix' => string '' (length=0)
'select' => boolean true
protected 'sql' => null
protected 'tablePrefix' => string '' (length=0)
protected 'utf' => boolean true
protected 'utf8mb4' => boolean false
protected 'errorNum' => int 0
protected 'errorMsg' => null
protected 'transactionDepth' => int 0
protected 'disconnectHandlers' =>
array (size=0)
empty
$option = array();
$option['driver'] = 'mssql';
$option['host'] = 'server';
$option['user'] = 'user';
$option['password'] = 'pass';
$option['database'] = 'db';
$option['prefix'] = '';
$db = JDatabase::getInstance( $option );
$query = $db->getQuery(true);
$query = "SELECT * from Test";
$db->setQuery($query);
$results = $db->loadObjectList();
В этом блоке вы должны изменить эту строку:
$option['driver'] = 'mssql';
в
$option['driver'] = 'sqlsrv';
SQLSRV — это единственный драйвер SQL Server, который работает с Joomla, если вы хотите использовать JDatabase.
Кроме того, вы должны проверить конфигурацию PHP, возможно, драйвер SQL не установлен.
Ох .. еще один. Вот:
$db = &JDatabase::getInstance($option);
Я жду обратной связи, дайте мне информацию, если это работает.
Других решений пока нет …