mysql 创建json

    技术2022-07-11  104

    mysql 创建json

    Web services are taking over the world. I credit Twitter's epic rise to the availability of a simple but rich API. Why not use the same model for your own sites? Here's how to create a basic web service that provides an XML or JSON response using some PHP and MySQL.

    Web服务正在占领世界。 我相信Twitter的史诗般的兴起在于它提供了简单但丰富的API。 为什么不为自己的网站使用相同的模型? 以下是创建基本的Web服务的方法,该服务使用一些PHP和MySQL提供XML或JSON响应。

    PHP / MySQL (The PHP / MySQL)

    /* require the user as the parameter */ if(isset($_GET['user']) && intval($_GET['user'])) { /* soak in the passed variable or set our own */ $number_of_posts = isset($_GET['num']) ? intval($_GET['num']) : 10; //10 is the default $format = strtolower($_GET['format']) == 'json' ? 'json' : 'xml'; //xml is the default $user_id = intval($_GET['user']); //no default /* connect to the db */ $link = mysql_connect('localhost','username','password') or die('Cannot connect to the DB'); mysql_select_db('db_name',$link) or die('Cannot select the DB'); /* grab the posts from the db */ $query = "SELECT post_title, guid FROM wp_posts WHERE post_author = $user_id AND post_status = 'publish' ORDER BY ID DESC LIMIT $number_of_posts"; $result = mysql_query($query,$link) or die('Errant query: '.$query); /* create one master array of the records */ $posts = array(); if(mysql_num_rows($result)) { while($post = mysql_fetch_assoc($result)) { $posts[] = array('post'=>$post); } } /* output in necessary format */ if($format == 'json') { header('Content-type: application/json'); echo json_encode(array('posts'=>$posts)); } else { header('Content-type: text/xml'); echo '<posts>'; foreach($posts as $index => $post) { if(is_array($post)) { foreach($post as $key => $value) { echo '<',$key,'>'; if(is_array($value)) { foreach($value as $tag => $val) { echo '<',$tag,'>',htmlentities($val),'</',$tag,'>'; } } echo '</',$key,'>'; } } } echo '</posts>'; } /* disconnect from the db */ @mysql_close($link); }

    With the number of persons hitting your web service (hopefully), you'll need to do adequate validation before attempting to connect to the database to avoid injection attacks. Once we get the desired results from the database, we cycle through the results to populate our return results array. Depending upon the response type desired, we output the proper header and content in the desired format.

    随着希望访问您的Web服务的人数增加,在尝试连接到数据库以避免注入攻击之前,您需要进行充分的验证。 一旦从数据库中获得了期望的结果,我们便会循环遍历结果以填充返回结果数组。 根据所需的响应类型,我们以所需的格式输出适当的标题和内容。

    Take the following sample URL for example:

    以以下示例URL为例:

    http://mydomain.com/web-service.php?user=2&num=10

    Now, we can take a look at the possible results of the URL.

    现在,我们来看看URL的可能结果。

    XML输出 (The XML Output)

    <posts> <post> <post_title>SSLmatic SSL Certificate Giveaway Winners</post_title> <guid>https://davidwalsh.name/?p=2304</guid> </post> <post> <post_title>MooTools FileManager</post_title> <guid>https://davidwalsh.name/?p=2288</guid> </post> <post> <post_title>PHPTVDB: Using PHP to Retrieve TV Show Information</post_title> <guid>https://davidwalsh.name/?p=2266</guid> </post> <post> <post_title>David Walsh: The Lost MooTools Plugins</post_title> <guid>https://davidwalsh.name/?p=2258</guid> </post> <post> <post_title>Create Short URLs Using U.Nu</post_title> <guid>https://davidwalsh.name/?p=2218</guid> </post> <post> <post_title>Create Bit.ly Short URLs Using PHP</post_title> <guid>https://davidwalsh.name/?p=2194</guid> </post> <post> <post_title>Represent Your Repositories Using the GitHub Badge!</post_title> <guid>https://davidwalsh.name/?p=2178</guid> </post> <post> <post_title>ZebraTable</post_title> <guid>https://davidwalsh.name/?page_id=2172</guid> </post> <post> <post_title>MooTools Zebra Table Plugin</post_title> <guid>https://davidwalsh.name/?p=2168</guid> </post> <post> <post_title>SSLmatic: Quality, Cheap SSL Certificates and Giveaway!</post_title> <guid>https://davidwalsh.name/?p=2158</guid> </post> </posts>

    Take this next sample URL for example:

    以下面的示例URL为例:

    http://mydomain.com/web-service.php?user=2&num=10&format=json

    Now, we can take a look at the possible results of the URL.

    现在,我们来看看URL的可能结果。

    JSON输出 (The JSON Output)

    {"posts":[{"post":{"post_title":"SSLmatic SSL Certificate Giveaway Winners","guid":"http:\/\/davidwalsh.name\/?p=2304"}},{"post":{"post_title":"MooTools FileManager","guid":"http:\/\/davidwalsh.name\/?p=2288"}},{"post":{"post_title":"PHPTVDB: Using PHP to Retrieve TV Show Information","guid":"http:\/\/davidwalsh.name\/?p=2266"}},{"post":{"post_title":"David Walsh: The Lost MooTools Plugins","guid":"http:\/\/davidwalsh.name\/?p=2258"}},{"post":{"post_title":"Create Short URLs Using U.Nu","guid":"http:\/\/davidwalsh.name\/?p=2218"}},{"post":{"post_title":"Create Bit.ly Short URLs Using PHP","guid":"http:\/\/davidwalsh.name\/?p=2194"}},{"post":{"post_title":"Represent Your Repositories Using the GitHub Badge!","guid":"http:\/\/davidwalsh.name\/?p=2178"}},{"post":{"post_title":"ZebraTable","guid":"http:\/\/davidwalsh.name\/?page_id=2172"}},{"post":{"post_title":"MooTools Zebra Table Plugin","guid":"http:\/\/davidwalsh.name\/?p=2168"}},{"post":{"post_title":"SSLmatic: Quality, Cheap SSL Certificates and Giveaway!","guid":"http:\/\/davidwalsh.name\/?p=2158"}}]}

    Creating a basic web service is very simple and encourages your users to spread the word about your website or service. Want more traffic? Want your website to grow without you putting in all the effort? Create a web service!

    创建基本的Web服务非常简单,并鼓励您的用户宣传您的网站或服务。 需要更多流量吗? 希望您的网站在不付出全部努力的情况下得以发展吗? 创建一个Web服务!

    翻译自: https://davidwalsh.name/web-service-php-mysql-xml-json

    mysql 创建json

    相关资源:jdk-8u281-windows-x64.exe
    Processed: 0.026, SQL: 9