我在 php 中创建了一个返回 JSON 的 Web 服务。它工作正常,但在大多数情况下它并不一致,它会提取所有需要的信息,其他时候它会遗漏一个特定的列,该列是名为 table_bio 的倒数第二个表。我认为这是一个缓存问题,但是我将相关标头放入 apache 和服务中,但仍然没有运气。问题是该服务正在获取正确的信息,但没有返回正确的信息。
下面是我的代码:
<?php
error_reporting (E_ALL ^ E_NOTICE);
$id = $_GET['Table'];
/* grab the posts from the db */
$query = "SELECT * FROM table WHERE table_id='$id'";
$result = mysql_query($query,$link) or die('Errant query: '.$query);
/* create one master array of the records */
while($post = mysql_fetch_assoc($result)) { $posts = $post; }
/* output in necessary format */
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
header('Content-type: application/json');
echo $_GET['onJSONPLoad'];
echo "(" . json_encode($posts) . ")";
@mysql_close($link);
?>
关于为什么会发生这种情况的任何想法?
我还应该提到有时未显示的列是文本类型