0

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

我正在构建一个 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;
?>

结果在我的桌面应用程序上返回“真”,但信息实际上并没有保存到数据库中。如果不是

InputStream *input = authURL.createInputStream(true);

我用:

authURL.launchInDefaultBrowser();

它在浏览器中打开 php 文件,一切正常。任何想法我做错了什么?

4

2 回答 2

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;
于 2013-04-30T18:41:25.083 回答
0

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

于 2013-05-01T02:34:45.963 回答