$data_sql = "SELECT * FROM teachers_table LIMIT {$limit} OFFSET {$offset}";
返回以下错误:
错误:您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便使用“OFFSET偏移量”附近的权限。在第1行
我之前在ajax中创建了两个变量:
$.ajax({
type: "GET",
url: "mini_profiles.php",
data: {
'offset':0,
'limit':9
},
success:function(data){
$('body').append(data);
flag += 9;
}
然后我分配给我试图在SQL代码中调用的字符串值:
$limit = 'limit';
$offset = 'offset';
我创建变量并将它们分配到语句中所做的似乎是准确的吗?我意识到我收到了错误,因此显然存在某个问题,但不确定我的代码的哪一部分导致了问题。
非常感谢您阅读本文。
更新到原始帖子以包含完整的ajax功能:
<script type="text/javascript">
<!--make the ajax call when page loads-->
$(document).ready(function()
{
var flag = 0;
<!--pass the two parameters, offset and limit-->
$.ajax({
type: "GET",
url: "mini_profiles.php",
data: {
'offset':0,
'limit':9
},
success:function(data){
$('body').append(data);
flag += 9;
}
});
//Every time when we scroll we check the current value of scrollbar
//and if it has reached the bottom of the page
$(window).scroll(function(){
if($(window).scrollTop()>= $(document).height() - $(window).height()){
//this is what happens at the bottom - same ajax function but we now want to offset by+=3 everytime
//so above we create a variable and increase by three whenver the ajax call is successful
$.ajax({
type: "GET",
url: "mini_profiles.php", //this is the ajax function calling the get_data.php
data: {
'offset':flag,
'limit':9
},
success:function(data){
$('body').append(data);
flag += 9;
}
});
}
});
});
</script>
答案 0 :(得分:3)
您需要将从AJAX调用传递的值转换为变量
$limit = $_GET['limit'];
$offset = $_GET['offset'];
$data_sql = "SELECT * FROM teachers_table LIMIT {$limit} OFFSET {$offset}";
虽然这很容易SQL Injection Attack 甚至if you are escaping inputs, its not safe! 在
中使用prepared parameterized statementsMYSQLI_
或PDO
API
您不会说您正在使用哪种API,因此我无法向您展示如何使用参数化和绑定查询。