Я пытаюсь подключиться к базе данных Microsoft SQL 2005 года с помощью PHP с помощью sqlsrv_connect()
функция. Увы, функция возвращает false, и я не уверен, почему.
<?php
$myServer = "MAZE.jpc.wa.edu.au.local";
$myUser = "myUsername";
$myPass = "myPassword";
$myDB = "John Paul College";
$connectionInfo = array("Database"=>$myDB, "UID" => $myUser, "PWD" => $myPass);
$conn = sqlsrv_connect($myServer, $connectionInfo); //returns false
if( $conn === false )
{
echo "failed connection";
}
$sql = "SELECT name FROM users WHERE name= 'admin'";
$stmt = sqlsrv_query($conn,$sql);
if(sqlsrv_fetch($stmt) ===false)
{
echo "couldn't fetch data";
}
$name = sqlsrv_get_field($stmt,0);
echo $name;
sqlsrv_close( $conn );
?>
Кто-нибудь знает, почему я не могу подключиться?
Благодарю.
Редактировать.
Хорошо, хорошо, я смог вызвать сообщение об ошибке благодаря ответу других парней, который гласит
Array (
[0] => Array (
[0] => IMSSP [SQLSTATE] => IMSSP
[1] => -49 [code] => -49
[2] => This extension requires either the Microsoft SQL Server 2008 Native Client (SP1 or later)
or the Microsoft SQL Server 2008 R2 Native Client ODBC Driver to communicate with SQL Server.
Neither of those ODBC Drivers are currently installed.
Access the following URL to download the Microsoft SQL Server 2008 R2 Native Client ODBC driver
for x86: http://go.microsoft.com/fwlink/?LinkId=163712
[message] => This extension requires either the Microsoft SQL Server 2008 Native Client (SP1 or later)
or the Microsoft SQL Server 2008 R2 Native Client ODBC Driver to communicate with SQL Server.
Neither of those ODBC Drivers are currently installed.
Access the following URL to download the Microsoft SQL Server 2008 R2 Native Client ODBC driver
for x86: http://go.microsoft.com/fwlink/?LinkId=163712 )
[1] => Array (
[0] => IM002 [SQLSTATE] => IM002
[1] => 0 [code] => 0
[2] => [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
[message] => [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified ) )
Я не совсем уверен, как решить эту проблему. Я использую XAMPP в качестве тестового веб-сервера, php версии 5.3 и следующие .dll
php_sqlsrv_53_ts_vc6.dll
а также
php_pdo_sqlsrv_53_ts_vc6.dll
Я бы посоветовал вам показать ошибку соединения с помощью sqlsrv_errors (). Пожалуйста, смотрите следующую реализацию.
<?php
$serverName = "serverName\sqlexpress"; //serverName\instanceName
// Since UID and PWD are not specified in the $connectionInfo array,
// The connection will be attempted using Windows Authentication.
$connectionInfo = array( "Database"=>"dbName");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
?>
Для получения дополнительной информации: http://php.net/manual/en/function.sqlsrv-connect.php
Загрузите собственный клиент SQL, как показано в сообщении об ошибке. Это отдельно от SQL Server и требование для этого драйвера для правильной работы. Урок, извлеченный из построения реализации sqlsrv в среде IIS