我编写了一个使用 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行。
mainPage.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>
myquery.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");
}
?>
答案 0 :(得分:2)
Internal Server Error (Code 500)是服务器端错误,与AJAX无关。这通常是由糟糕的服务器端代码引起的。您可能需要检查语法,并尝试通过浏览器查看页面。该页面可能还打印了一些错误细节。
答案 1 :(得分:0)
我猜想服务器很难理解你的查询参数。尝试编码:
'myquery.php?query='+encodeURIComponent(query)
就像其他人所说的那样,你所做的并不安全。您不应该为要执行的服务传递查询!
编辑:另一种可能性是你没有将三个参数传递给$ .getJSON()。尝试:
$.getJSON(
'myquery.php',
{query: query},
function(data) {
alert(data);
}
);
答案 2 :(得分:0)
尝试使用firebug。在浏览器中执行此代码时运行firebug。它将给出错误的原因以及需要更正的位置。希望它会有所帮助。