1

我编写了一个使用getJSON的代码(见下文)。FireBug 返回以下错误消息:

"NetworkError: 500 Internal Server Error - http://localhost:10088/test/myquery.php?query=SELECT%20tm%20FROM%20schedule%20WHERE%20val=%27BT009%27;"

我无法弄清楚这个错误的原因。非常感谢任何帮助。

PS 我在 MySQL 查询浏览器中测试了这个 SQL 查询。它返回了 3 行。

主页.php

<script>
function updateList(){
   var query = "SELECT tm FROM schedule WHERE val='BT009';";

   $.getJSON(
           'myquery.php?query='+query,
           function(data) 
           {
               alert(data);
           }   
   );

}

$(document).ready(function() {
    updateList();
});

</script>

我的查询.php

<?php
include_once 'include/connect_db.php';

if (isset($_GET['query'])) {
    $query = $_GET['query'];

    $condb = connectDB();
    $result=execute_query($query);
    closeDB($condb);

    $rows = array();

    if ($result && mysql_num_rows($result)) {
        while($row = mysql_fetch_array($result)) {
            $rows[] = $row['tm'];
        }
    }   

    var_dump($rows);

    echo json_encode($rows);

} else {
    echo json_encode("Failed");
}
?>
4

3 回答 3

2

内部服务器错误(代码 500)是服务器端错误,与 AJAX 无关。这通常是由错误的服务器端代码引起的。您可能想检查您的语法并尝试通过浏览器查看页面。该页面可能还打印了一些错误详细信息。

于 2012-08-11T10:57:01.607 回答
0

我将冒险猜测服务器难以理解您的查询参数。尝试对其进行编码:

'myquery.php?query='+encodeURIComponent(query)

就像其他人所说的那样,您所做的事情并不安全。您不应该为要执行的服务传递查询!

编辑:另一种可能性是您没有将三个参数传递给 $.getJSON()。尝试:

$.getJSON(
   'myquery.php',
   {query: query},
   function(data) {
      alert(data);
   }   
);
于 2012-08-11T11:19:29.773 回答
0

尝试使用firebug。在浏览器中执行此代码时运行firebug。它会给出错误的原因以及需要更正的地方。希望它会有所帮助。

于 2013-07-10T11:25:53.343 回答