Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过php将桌面应用程序连接到在线数据库_Php_Mysql_Database_Desktop_Juce - Fatal编程技术网

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

通过php将桌面应用程序连接到在线数据库,php,mysql,database,desktop,juce,Php,Mysql,Database,Desktop,Juce,我已经读了很多关于这个主题的帖子,但我似乎还是不明白 我正在构建一个Mac/PC桌面应用程序。当用户首次授权应用程序时,我想将他们的信息存储在在线Mysql数据库中。我使用JUCE库在线调用和处理一个php文件,该文件反过来处理在线数据库的更新。在我的桌面应用程序上: String url = "http://www.syntorial.com/onlinePHPFileToCall.php?email=" + email + "&computer=" + SystemStats::ge

我已经读了很多关于这个主题的帖子,但我似乎还是不明白

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

authURL.launchInDefaultBrowser();
它在浏览器中打开php文件,一切正常。你知道我做错了什么吗?

乔,
似乎是你在这个论坛上的第一个问题。欢迎光临。您提到要将信息存储在在线数据库中。但在连接时,您添加了有关本地via的db信息

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;

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

感谢您对pal4life的快速响应。如前所述,如果我从浏览器启动此php文件,一切正常,因此我认为查询结构或“localhost”等没有任何问题。我尝试回显$query,但它是空的,因此没有任何信息。请检查此示例。因此,行$mysqli=newmysqli('localhost','username','password','dbname');已经有了数据库名,所以不确定为什么需要select_db?Echo查询应至少打印一些内容。试试这个更新后的例子,让我知道第一次有机会发生什么事,谢谢。但问题是,如果你说的是问题所在,那么我的代码不是不能在浏览器上运行吗?我想我只是想了解为什么数据库的反应不同,即使在两种情况下(桌面和浏览器),它都收到相同的指令集。JUL是一个非PHP库,大部分看起来像C++。因此,用适当的语言标记问题,以便开发人员能够提供他们的输入。这是我的问题的一半,是找出哪个组件负责,juce、php或MySQL。我添加了标签。你正在使用mysqli,这很好,但你使用它的方式非常危险。始终使用您的SQL语句。永远不要在你的查询中放入未替换的用户数据。谢谢tadman。这是我的待办事项列表中的下一项,在我完成这项工作后。如果评论或回复对您有所帮助,您可以单击向上箭头,这是表示感谢的最佳方式。:)你也应该接受一个回答作为正确答案。
<?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;