【问题标题】:How to Connect Live SQL Database to Android App如何将 Live SQL 数据库连接到 Android 应用程序
【发布时间】:2016-07-18 10:36:04
【问题描述】:

我要开发一个简单的应用程序。我的应用程序将在 PHP Web 服务的帮助下与实时数据库进行通信。在本地测试我的应用程序时,一切正常。但当我移至实时服务器时(我的数据库和 Web 服务文件托管在实时服务器((即)GoDaddy)中)。

<?php  
 require "db_config.php";  

 $user_name=$_POST['login_name'];
 $user_pass=$_POST['login_pass'];
 $sql_query = sqlsrv_query( $conn, "select * from user_auth where user_name='".$user_name."' and user_pass ='".$user_pass."'" , array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));  

 if(sqlsrv_num_rows($sql_query)>0)  
 {  
    echo "Login Success..Welcome";  
 }  
 else  
 {   
     echo "Login Failed.......Try Again..";  
 }  
 ?>  

这是测试登录活动的代码。运行此程序后,我收到此错误:

Array ( [0] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18452 [code] => 18452 [2] =>
[Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed.
The login is from an untrusted domain and cannot be used with Windows authentication.
[message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed.
The login is from an untrusted domain and cannot be used with Windows authentication. )
[1] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18452 [code] => 18452
[2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed.
The login is from an untrusted domain and cannot be used with Windows authentication.
[message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed. The login is from an untrusted domain and cannot be used with Windows authentication. ) )

我在本地解决此问题以更改本地 SQL Management Studio 软件中的某些配置时除外,而且我可以使用一些 DLL 文件,例如(在 PHP.ini 文件中进行更改)

extension=php_pdo_sqlsrv_55_ts.dll
extension=php_sqlsrv_55_ts.dll

这适用于本地机器,但是当我使用实时数据库时,如何配置我的在线数据库?如果有任何可能的方式来使用本地机器的 DLL 文件?如果没有怎么配置?

db_config.php

<?php
$serverName = "servername";
$connectionInfo = array( "Database"=>"testdb_mms");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}
?>

【问题讨论】:

  • 正如错误所说,您不能使用 AD 身份验证。您的连接是在您附加的代码之外完成的,可能在 db_config.php
  • 感谢@JamesZ 的回复,我附上了我的 db_config 文件,仅在帖子中我想念那个。那么使用哪种身份验证呢?
  • 使用 SQL Server 身份验证,您需要为此创建一个单独的用户/登录名。
  • 在哪里?在我的托管数据库中?
  • 是的,在您尝试连接的数据库中。

标签: php android sql-server


【解决方案1】:

修复它以传递另外两个参数(如用户信息)

<?php
//check all parameters
$serverName = "server_name"; 
$uid = "testuser";   
$pwd = "V*****";  
$databaseName = "testdb_mms";

//check config
$connectionInfo = array( "UID"=>$uid,                            
                         "PWD"=>$pwd,                            
                         "Database"=>$databaseName); 

$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true));
}
?>

【讨论】:

    最近更新 更多