来自javascript的我的ajax代码
function makeRequest(button) {
alert(button.value);
var no =button.value;
$.ajax({
url: "findques.php",
type: 'POST',
dataType:"json",
data: {id:no},
success: function(response) {
$.each(response, function(idx, res){
alert(res.question);
});
},
error:function(err){
console.log(err);
}
});
}
我的用于检索数据的PHP代码如下
<?php
$connect =mysql_connect('localhost', 'root', 'password');
mysql_select_db('test');
if($connect->connect_error)
{
die("connection failed : ".$connect->connect_error);
}
if(isset($_POST['id']))
{
$var = mysql_real_escape_string(htmlentities($_POST['id']));
error_log($var);
}
$data = "SELECT * FROM `questions` WHERE no=$var";
if(mysql_query($data)==TRUE)
{
$result=mysql_query($data);
$row = mysql_fetch_assoc($result);
$details =array( "id"=>$row['no'],"question"=>$row['Ques'],"op1"=>$row['op1'],"op2"=>$row['op2'],"op3"=>$row['op3'],"op4"=>$row['op4']);
echo json_encode($details);
}
else{
echo "error";
}
$connect->close();
?>
我试图通过php从ajax中检索Mysql数据库中的数据,但它显示“error.jquery.min.js:6 GET 500(内部服务器错误)”
这是我的ajax部分或PHP部分的问题吗?我使用Ubuntu 14.04与apache 2 server.Some建议服务器权限有问题吗?
答案 0 :(得分:0)
您正在使用type: 'GET',
并在PHP中使用$_POST['id']
。
将类型更改为type: 'POST',
答案 1 :(得分:0)
您的问题是无效的PHP代码。
您似乎在服务器端使用了一些奇怪的不同示例组合:
$connect =mysql_connect('localhost', 'root', 'password');
此行返回句柄(数值),而不是您稍后尝试使用的对象:
if($connect->connect_error)
这会导致内部错误。
要调试这样的事情,您应该开始监视http服务器的错误日志文件。这就是详细记录这些错误的地方。无需查看这些日志文件即可在黑暗中搜索。那没有意义。看看有光的地方(和记录的错误)!
答案 2 :(得分:0)
我使用了mysqli而不是mysql_connect(),并且由于对patrick的建议不推荐使用mysql_connect(),因此错误消失了
答案 3 :(得分:0)
尝试更改此内容......
if(mysql_query($data)==TRUE)
{
$result=mysql_query($data);
$row = mysql_fetch_assoc($result);
$details =array( "id"=>$row['no'],"question"=>$row['Ques'],"op1"=>$row['op1'],"op2"=>$row['op2'],"op3"=>$row['op3'],"op4"=>$row['op4']);
echo json_encode($details);
}
对此...
$result = mysql_query($data);
if(mysql_num_rows($result)>0)
{
$row = mysql_fetch_assoc($result);
$details =array(
"id"=>$row['no'],
"question"=>$row['Ques'],
"op1"=>$row['op1'],
"op2"=>$row['op2'],
"op3"=>$row['op3'],
"op4"=>$row['op4']);
echo json_encode($details);
}
不是100%确定这是问题所在,但这就是我构建基本数据库功能的方式,并且工作正常。
我还要注意,如果这是一个用户可以输入数据的公共页面,我建议使用 PHP PDO 来处理数据库交互。