使用PHP将iOS客户端连接到MySql数据库的最佳方法是什么?

时间:2013-09-03 11:53:08

标签: php mysql

我有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数据库的最佳方法是什么?

请帮助!!

1 个答案:

答案 0 :(得分: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等框架。