我已经阅读了很多关于这个一般主题的帖子,但我似乎仍然无法弄明白。
我正在构建一个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文件,一切正常。我有什么想法吗?
答案 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数据。谢谢你的帮助。