2011-02-06 18 views
2

好的,这是事情。使用PHP脚本为桌面应用程序创建MySQL连接

我的虚拟主机,这在我的国家是最便宜和最可靠的,它不允许直接访问我的MySQL数据库。我只能使用网站上的“localhost”连接到它。

这是一个picclecle,因为我必须编写一个桌面应用程序来与数据库进行交互(可以使用Web界面,但我想避免它,如果可以的话)。我可能会用C#编写它。

所以,也许我可以做一个简单的PHP MySQL连接脚本,并以某种方式用C#使用该连接查询数据库。 这可能吗?

回答

3

这当然有可能。通常使用直接的数据库接口脚本来达到这个目的。但请注意限制访问权限(.htpasswd,允许来源,https?)。

你可以用它直接接受SQL查询的简单JSON或POST接口,以及简单的返回结果为JSON阵列:

<?php 
// maybe even: $_POST = json_decode(file_get_contents("php://input")); 

$db = new PDO(...); 
$stmt = $db->prepare($_POST["query"]); 
$stmt->execute($_POST["params"]); // enumerated array 

print json_encode($stmt->fetchAll()); 

您可能需要添加一些错误检查和设计的信令机制(通常只需发送带有魔术值或标识符的结果数组即可将其与普通数据列表区分开来)。

0

是的。有可能的。您可以使用PHP来连接并在那里运行查询。请不要忘记为php代码添加一些安全代码。因为http访问你的php代码会带来危险。您可以加密PHP输出。

2

我可以告诉你可以使用SQLyog php-mysql隧道,但即使这是一个快速隧道脚本,你必须考虑一些延迟过程,当你得到大的或巨大的结果时,它必须先由脚本处理将答案发送给您的应用程序,因此如果该软件没有时间关键性,那么这样做可以正常工作,否则,我鼓励您获得更好的托管解决方案,即使在您的国家以外也是如此。

1

我会写一个Web服务来收集数据并以更有用的格式返回它,而不是允许脚本执行原始查询。这样可以提供更好的安全性(通过不允许任意查询)和更轻松的维护(通过能够同时更改底层基础架构而不会混淆服务器脚本和桌面客户端)。

0

如果您的客户需求是直接访问,我会更改主机并使用第三方mysql客户端,而不是重新发明轮子。

相关问题