如何在外部托管服务器上将Android应用程序连接到正在运行的MySQL数据库

时间:2013-05-22 12:43:12

标签: php android mysql apache wamp

基本上,我一直在做很多搜索,但仍然找不到解决问题的方法。

我正在尝试将我的应用程序连接到由公司在外部服务器上运行和托管的数据库(我们已经将这个数据库用于我们在用户计算机上运行的应用程序)

我想在数据库中查询登录信息,这样当用户在我的应用程序中输入他的用户名和密码时,它会将这些详细信息与数据库中的详细信息进行比较,然后回复,说明这些凭据是否正确是否允许用户查看不同的页面,该页面将从该数据库中为该用户提取特定详细信息(但这是我将来需要解决的问题)

我目前的主要问题是,我似乎无法让应用程序能够连接到数据库,目前我正在使用WAMP服务器来托管我制作的php文件...

注意:我将使用“user”和“pass”而不是我拥有的实际用户名和密码

<?php

//connecting
//server, username, password, database

$dbhost = 'external ip entered here';
$dbuser = 'user';
$dbpass = 'pass';
$dbdb   = 'datbasename';

//connect to mySQL 
$connect = mysql_connect ($dbhost,$dbuser,$dbpass) or die("Connection error");

//select the database
mysql_select_db($dbdb) or die ("database selection error");

//Retrieve the login details via POST
$username=$_POST['username'];
$password=$_POST['password'];

//Query the table
$query="SELECT llogint,lpasint FROM TCHAUFF (nolock) 
WHERE llogint='$username' AND lpasint='$password'";

//check if there any results returned
$num = mysql_num_rows($query);

//if a record was found matching the details entered in the query
if($num == 1){
//create a while loop that places the returned data into an array
while($list=mysql_fetch_assoc($query)){

//store the returned data into variable
$output = $list;

//encode the returned data in JSON format
echo json_encode( $output );
//close the connection
mysql_close();
}}
?>

我认为他们的PHP文件没有任何问题,但如果是这样请请纠正我哈哈!

我遇到的问题是,如果我通过将文件放入www文件夹并转到localhost / androidtest.php来尝试从WAMP运行此php文件

我收到错误提示警告:mysql_connect():无法建立连接,因为目标计算机主动拒绝它

我已经尝试过我能找到的每一个解决方案,

将此信息添加到config.inc.php文件

/* Server: UserSeaCogi[1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'external database';
$cfg['Servers'][$i]['host'] = 'external ip entered here';
$cfg['Servers'][$i]['port'] = '';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'user';
$cfg['Servers'][$i]['password'] = 'pass';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

我迷失了想法!

我补充说 bind-address = 0.0.0.0 到my.ini文件

但我正在考虑与我设置WAMP的方式有关,但我似乎无法找到要改变的内容。

我也知道我肯定可以访问数据库,因为如果我将它添加到visual studio中我可以运行查询...有一件事要注意..它是2003服务器...我知道确定视觉工作室的局限性与android不确定?

提前致谢

1 个答案:

答案 0 :(得分:0)

在你的PHP代码中

mysql_select_db($dbdb) 

应该是

mysql_select_db($dbdb,$connect) ;

然后添加这些行

$result = mysql_query($query, $connect);
$num = mysql_num_rows($result);