1

我有 MySql 数据,我想从 iOS 获取数据

    <?php
   // Database credentials
   $host = 'localhost'; 
   $db = 'json'; 
   $uid = 'json'; 
   $pwd = 'json1';


    // Connect to the database server   
    $link = mysql_connect($host, $uid, $pwd) or die("Could not connect");

   //select the json database
   mysql_select_db($db) or die("Could not select database");

   // Create an array to hold our results
   $arr = array();
   //Execute the query
   $rs = mysql_query("SELECT id,userid,firstname,lastname,email FROM users");

   // Add the rows to the array 
   while($obj = mysql_fetch_object($rs)) {
   $arr[] = $obj;
   }

   //return the json result. The string users is just a name for the container object. Can be set anything.
   echo '{"users":'.json_encode($arr).'}';

?>

将 iOS 连接到 MySql 数据库的最佳方法是什么?

请帮忙 !!

4

1 回答 1

1

是的,这很好,但只需添加

header('Content-Type: application/json');

到 php,以便响应是 json 而不是 html。

您可以添加一些验证或错误处理,例如,

try
{
  //Your DB query part

      // Connect to the database server   
    $link = mysql_connect($host, $uid, $pwd) or die("Could not connect");

   //select the json database
   mysql_select_db($db) or die("Could not select database");

   // Create an array to hold our results
   $arr = array();
   //Execute the query
   $rs = mysql_query("SELECT id,userid,firstname,lastname,email FROM users");

   // Add the rows to the array 
   while($obj = mysql_fetch_object($rs)) {
   $arr[] = $obj;
   }

   //return the json result. The string users is just a name for the container object. Can be set anything.


    if(count($arr) >0)
    {
   echo '{"users":'.json_encode($arr).'}';
    }
}

catch(PDOException $e) {

        echo '{"error":{"text":'. $e->getMessage() .'}}';
    }
}

创建一个 NSURLConnection 类,该类与您托管此 .php 文件的服务器对话,如果您使用 JSON 解析器或可以为您解析响应的内置 NSJSONSerialization 类。您在这里尝试做的是创建 iOS 应用程序用来与您的数据库对话的 Web 服务,特别是查询。如果您要扩大规模,您应该尝试实施 SLIM 或 FAT-FREE 等框架。

于 2013-09-03T12:04:36.763 回答