I have MySql data and i want to fetch data from iOS
我有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).'}';
?>
what is the best way to connect iOS to MySql database ?
将iOS连接到MySql数据库的最佳方法是什么?
please help !!
请帮忙 !!
1 个解决方案
#1
1
Yes this is fine but just add
是的这很好但只是添加
header('Content-Type: application/json');
to the php so that the response is a json and not a html.
到php,以便响应是一个json而不是一个HTML。
You could add some validations or error handling like,
您可以添加一些验证或错误处理,如,
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() .'}}';
}
}
Make a NSURLConnection class that talks to the server where you are hosting this .php file and If you use a JSON parser or the inbuilt NSJSONSerialization class that can parse the response for you. What you are trying to do here is creating webservices that the iOS app uses to talk to your db, specifically querying. You should try implementing frameworks like SLIM or FAT-FREE if you are going to scale up.
创建一个NSURLConnection类,与您托管此.php文件的服务器进行通信,如果您使用JSON解析器或内置的NSJSONSerialization类,可以为您解析响应。你在这里要做的是创建iOS应用程序用来与你的数据库通信的web服务,特别是查询。如果要扩展,您应该尝试实现SLIM或FAT-FREE等框架。
#1
1
Yes this is fine but just add
是的这很好但只是添加
header('Content-Type: application/json');
to the php so that the response is a json and not a html.
到php,以便响应是一个json而不是一个HTML。
You could add some validations or error handling like,
您可以添加一些验证或错误处理,如,
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() .'}}';
}
}
Make a NSURLConnection class that talks to the server where you are hosting this .php file and If you use a JSON parser or the inbuilt NSJSONSerialization class that can parse the response for you. What you are trying to do here is creating webservices that the iOS app uses to talk to your db, specifically querying. You should try implementing frameworks like SLIM or FAT-FREE if you are going to scale up.
创建一个NSURLConnection类,与您托管此.php文件的服务器进行通信,如果您使用JSON解析器或内置的NSJSONSerialization类,可以为您解析响应。你在这里要做的是创建iOS应用程序用来与你的数据库通信的web服务,特别是查询。如果要扩展,您应该尝试实现SLIM或FAT-FREE等框架。