小编典典

通过PHP访问SQL数据库?

sql

我是PHP和SQL领域的一名新开发人员。到目前为止,我只完成了Objective-
C编程。但是,我的一个项目要求我拥有一个在线数据库,我需要从我的应用程序访问该数据库。我打算使用该MCPKit框架来远程访问数据库,如下所示:

MCPConnection *db;
db = [[MCPConnection alloc] initToHost:@"db.something.com" withLogin:@"someuser" usingPort:3306];
[db setPassword:@"somepass"];
NSLog(@"Connect: %d", [db connect]);

但这是行不通的,因为我联系了我的托管服务提供商,并且他们已经对其进行了设置,因此我无法从外部主机访问我的数据库(出于安全性考虑)。因此,我将不得不寻找替代方案。我唯一想到的就是在服务器上设置一个PHP脚本,该脚本将下载整个数据库并将其作为.sql文件提供给我,然后供我操作。

但是,我不知道从哪里开始。我发现您可以像这样在PHP中访问数据库:

$mysql = new MySQLi('db.something.com', 'someuser', 'somepass', 'mydb')
$mysql->query("SELECT * FROM `something`");

但是,我还没有尝试过,而且我不知道如何获取此结果。

为了解决这个问题,我想知道如何访问远程数据库,并让PHP脚本将数据库作为文件发送给我,我可以在我的Cocoa应用程序中对其进行操作。

事实上,如果在运行PHP脚本可以做 内部 的可可应用程序它会更加真棒。有想法吗?


好吧,我最终这样做是这样的:

<?PHP
$con = mysql_connect("db.something.com","someuser","somepass");
if (!$con){die('Could not connect: ' . mysql_error());}
mysql_select_db("db", $con);
$result = mysql_query("SELECT * FROM table");
if(mysql_num_rows($result)) {
    while($device = mysql_fetch_assoc($result)) {
      $devices[] = $device;
    }
  }

header('Content-type: application/json');
echo json_encode($devices);
mysql_close($con);
?>

一旦运行,我就可以对生成的JSON进行处理。这是一个好方法吗?


阅读 35

收藏
2021-04-28

共1个答案

小编典典

从性能(和安全性)的角度来看,下载整个数据库并进行更改后将其上载可能是没有意义的。

通常要做的是使用PHP或其他可以从iOS应用程序调用的服务器端语言设置API,然后为您执行操作。

我对它们没有经验,因此无法判断它们的完整性和健壮性,但是有现成的PHP
API可以将mySQL操作转换为REST操作(如phprestsql)。也许这对您来说有用;但是请注意,您始终需要解决身份验证问题。如果您拥有具有写访问权限(或对敏感材料具有读访问权限)的API,则需要做一些事情来防止Internet上的每个人都访问该URL。

编辑:
如果只轮询一组已定义的数据,则可以使用标准PHP“查询表并在循环中输出内容”脚本(最好使用PDO),并返回json_encode()d结果,这是最简单的。

2021-04-28