我正在开发使用PHP,mysql等传统技术构建的项目,它是一个Web应用程序。 现在我们想在像Andoid,iOS这样的平台上为移动用户构建一个应用程序。 所以我们正在考虑将MySql与Parse.com数据库连接起来。 我知道parse使用NoSql类型的数据库来存储对象。
所以我的问题是我们可以将解析数据库连接到任何其他SQL数据库吗? 如果是,那么我们如何做到这一点?
修改
@Luca laco我刚创建了一个像你一样的新云功能。在下面。
<script type="text/javascript">
Parse.initialize("APP_ID", "JAVASCRIPT_KEY");
Parse.Cloud.run('get_parse4j_object', {}, {
success: function(result) {
alert(result);
},
error: function(error) {
alert(JSON.stringify(error));
}
});
</script>
我按照Luca Laco解释我的方式。 但是当我从客户端JS调用函数时,我收到错误。 这是我的客户JS
POST https://api.parse.com/1/functions/get_parse4j_object 400 (Bad Request)
在网络标签中,我可以看到
using (SqlConnection conn = new SqlConnection("context connection=true"))
{
// do your stuff here...
}
并且错误是:{“code”:141,“message”:“找不到功能”} 我错过了哪里做错了?
答案 0 :(得分:4)
如果你的意思是像一个普通的mysql连接器,那么响应是否定的,你不能。现在,进行解析和其他关系的唯一方法是从Parse和Parse查询。要明确:
如果你想从Parse中获取一个存储在mysql中的值,你必须使用一个http请求来存储在php网站上(并由你实现)的特定php模块,这些模块需要一些参数,并以特定的方式返回结果,通常是json格式,也使用http头应用程序/ json。
如果你想从php中获取一个存储在解析数据库中的值,你可以按照解析网站(https://parse.com/docs/rest/guide/)上的规范从php运行REST调用,或者只是使用php sdk(https://github.com/ParsePlatform/parse-php-sdk)。另请参阅Parse Webhooks。
根据我的理解,您已经拥有了一个可用的Web服务,所以这样做,您只需通过Parse将存储在mysql服务器上的资源代理到您的客户端。换句话说,您应该为使用Parse SDK(适用于iOS或Android)在客户端上检索的每种类型的信息创建Parse Cloud函数,并为您在设备上执行的每个操作创建另一个Parse Colud函数,并且要保存在你的mysql数据库上,总是通过Parse系统。
我个人认为,是留在Mysql上,特别是因为在Parse上我们对查询仍有很多限制(没有分组,没有明显,查询超时等),而似乎是一个非常好的服务用于推送通知。无论如何,这一切都取决于你的软件的复杂性,正如我所说,只是我的意见。
[编辑]
这是一个例子:
在Parse云代码中,让我们制作一个名为“get_user_info&#39;
的云功能”Parse.Cloud.define("get_user_info",
function(request,response){
// Parameters from client (iOS/Android app)
var requestedUserId = request.params.user_id;
// Calling beckend service for getting user information
Parse.Cloud.httpRequest({
method: "POST",
url: "https://www.yourPhpWebsite.com/getUser.php", /* This could be your url for the proper php module */
body: { "php_param_user_id":requestedUserId }, /* Here you compose the body request for the http call, passing the php parameters and their values */
success: function(httpResponse) {
/* We expect that the php response is a Json string, using the header('application/json'), so: */
var jsonResponse = JSON.parse(httpResponse.text);
/* sample structure in jsonResponse: { "name":"Joe", "surname":"Banana", "birth_date":"01-02-1999" } */
/* Do any additional stuff you need... */
/* return the result to your iOS/Android client */
return response.success( { "myRequestedUserInfo" : jsonResponse } );
},
error: function(httpResponse) {
return response.error({ "msg":"Unable to fetch this user", "code":123456 }); // sample error response
}
});
});
示例&#39; getUser.php&#39;模块可以是
<?php
$expectedUserId = $_POST['php_param_user_id'];
// query your MySql db using passed user id
$query = "SELECT name,surname,birth_date FROM MyUserTable Where id = ".$expectedUserId;
// perform your query (the above one is just an example, would be better to use PDO and any other check, just to avoid SQL Injection)
// ...
// ..
// .
$resultQuery = row[0];
// sample json structure
$jsonResponseToParse = '{ "name":'.resultQuery["name"].', "surname":'.resultQuery["surname"].', "birth_date":'.resultQuery["birth_date"].' }';
header('application/json');
echo jsonResponseToParse;
exit();
?>
希望有所帮助