gpt4 book ai didi

php - 使用 http 在远程 sql db 上运行查询

转载 作者:行者123 更新时间:2023-11-30 23:36:38 26 4
gpt4 key购买 nike

我正在尝试通过 php 连接到 sql 数据库,但似乎我的托管服务提供商已阻止访问以连接到远程数据库,因此我被告知使用 http 并“解析 key ”到我的其他托管帐户(使用不同的托管服务提供商)并从那里运行 mysql 查询,然后将数据发送回原始数据。

我需要连接到数据库并检查某些行中的某些信息。然后通过使用 if 函数,根据从 db 返回的内容处理不同的代码(如果信息正确并且在正确的行中,则处理 x 代码,如果信息在db,处理 y 代码。)

^^这就是我要运行的查询^^

除了实际连接到数据库部分之外,我的所有操作都在工作,因为我的托管服务提供商已阻止它。他们告诉我使用 http(如上所述),但我不知道该怎么做。

任何人都可以解释(请用英语)我将如何使用 http 来做这样的事情吗?或者更简单的解决方案?

我无法更改托管服务提供商....

谢谢

最佳答案

您可以使用 CURL 在另一台服务器上请求该 php 页面,然后处理响应。

创建curl请求的例子

$encoded = ''; // include GET variables foe example. POST will be similar
foreach($_GET as $name => $value) {
$encoded .= urlencode($name).'='.urlencode($value).'&';
}
// chop off last ampersand
$encoded = substr($encoded, 0, strlen($encoded)-1)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "myOtherHostThatBlockedMysqlAccess.com/mysqlPage.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
$output = curl_exec($ch);
curl_close($ch);

所以 - 我们在前面的示例中所做的 - 我们在可以访问您的 Mysql 数据库的服务器上请求 mysqlPage.php。在那个页面 - 你必须把你的 Mysql 访问逻辑。从 db 中检索记录后 - 你可能会得到一些像 $someDbArray 这样的数组 - 你可以序列化这个数组并简单地回显它:

echo serialize($someDbArray);

无论你输出什么,你都可以在 CURL 输出的 $output 变量中使用。所以你可以像这样简单地退出你的数组:

$myDataArray = unserialize(output);

但是 - 如果您问我 - 最好的解决方案是获得一个不限制从任何地方访问的主机。我假设您使用的是共享主机?我至少会切换到 VPN 或专用服务器。我的意思是 - 无论您采用哪种方式 - 通过 REST 或 CURL - 延迟都将是巨大的。另外-我不确定您要传输哪种数据,但要考虑安全性。您至少必须使用 https。

关于php - 使用 http 在远程 sql db 上运行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6848374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com