我寫了一個代碼,使用getJSON(見下文)。 FireBug返回以下錯誤信息:getJSON:NetworkError:500內部服務器錯誤
"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");
}
?>
請不要使用'mysql_ *'功能,它們不再被維護,並且社區已經開始[deprecation process](http://goo.gl/KJveJ)。相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你想學習,[這裏是一個很好的PDO相關教程](http://goo.gl/vFWnC)。 – vascowhite 2012-08-11 10:58:13
這不是你的問題的答案,但我不提起它是不負責任的。您正在JavaScript中生成一個SQL字符串並將其發送到您的服務器以供執行。這是一個非常嚴重的應用程序安全漏洞,稱爲SQL注入。不要這樣做。真的,真的,*真的*不。這是OWASP站點上的[關於它的信息](https://www.owasp.org/index.php/SQL_Injection)。 – Barend 2012-08-11 10:59:44
如果我使用URL yourdomain.com/myquery.php?query="drop table schedule「,會發生什麼情況? – vascowhite 2012-08-11 11:00:56