繁体   English   中英

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

[英]what is the best way to connect an iOS client to a MySql database using PHP?

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

请帮忙 !!

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

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之类的框架。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM