通过php将桌面应用程序连接到在线数据库

时间:2013-04-30 18:25:39

标签: php mysql database desktop juce

我已经阅读了很多关于这个一般主题的帖子,但我似乎仍然无法弄明白。

我正在构建一个Mac / PC桌面应用程序。当用户首次授权应用程序时,我想将其信息存储在在线Mysql数据库中。我正在使用JUCE库来调用和处理在线php文件,这反过来又处理在线数据库的更新。在我的桌面应用上:

String url = "http://www.syntorial.com/onlinePHPFileToCall.php?email=" + email + "&computer=" + SystemStats::getComputerName();
URL authURL(url);
InputStream *input = authURL.createInputStream(true);
String result = input->readString();

和php文件:

<?php

$result = "";

$mysqli = new mysqli('localhost','username','password','dbname');

if (mysqli_connect_errno())
{
    $result = "connection failed";
}
else
{
    $mysqli->select_db("UserInfo");

    $email = $_GET['email'];
    $computer = $_GET['computer'];

    $query = "UPDATE UserInfo SET computer = '$computer' WHERE email = '$email'";

    if ($queryResult = $mysqli->query($query))
    {
        $result = "true";
    }
    else
    {
        $result = "false";
    }
}

echo $result;
?>

结果在我的桌面应用程序上显示为“true”,但信​​息实际上并未保存到数据库中。如果不是

InputStream *input = authURL.createInputStream(true);

我用:

authURL.launchInDefaultBrowser();

它在浏览器中打开php文件,一切正常。我有什么想法吗?

2 个答案:

答案 0 :(得分:0)

乔,你 看起来像是你在这个论坛上的第一个问题。所以欢迎。您提到要将信息存储在在线数据库中。但在连接时,您通过

添加了有关本地的数据库信息
mysqli('localhost',

。通过查找其IP地址/服务器名,用户名和密码,将localhost更新为指向在线数据库。此外,您必须确保运行此应用程序的计算机可以连接到该在线数据库。

以下是我在当地为我工作并为我工作的事情。

<?php

$result = "";

$mysqli = new mysqli('localhost','root','','test');

if (mysqli_connect_errno())
{
    $result = "connection failed";
}
else
{

    $email = "xyz@yahoo.com";
    $computer = "1mycomp";

    $query = "UPDATE so1 SET computer = '$computer' WHERE email = '$email'";

    /* 
      Printing the query to check what is being executed. 
      Remove the below line after program works.
    */
    echo $query;

    if ($queryResult = $mysqli->query($query))
    {
        $result = "true";
    }
    else
    {
        $result = "false";
    }
}

echo $result;

答案 1 :(得分:0)

原来,CreateInputStream中的“true”参数告诉它使用POST数据而不是GET,因此调用忽略了GET数据。谢谢你的帮助。